Python3多线程版TCP端口扫描器


Posted in Python onAugust 31, 2019

本文实例为大家分享了Python3多线程版TCP端口扫描器的具体代码,供大家参考,具体内容如下

使用命令

python BannerDemo.py -H 192.168.200.101 -p 22,3306

代码如下

import optparse
import socket
from socket import *
from threading import *

screenLock = Semaphore(value=1)

def connScan(tgtHost,tgtPort):
  try:
    connSkt = socket(AF_INET,SOCK_STREAM)
    connSkt.connect((tgtHost,tgtPort))
    connSkt.send('ViolentPython\r\n'.encode('utf-8'))
    result = connSkt.recv(1024)
    screenLock.acquire()
    print("[+] %d/tcp open"%tgtPort)
    print("[+]"+str(result))
  except Exception as e:
    screenLock.acquire()
    print(e)
  finally:
    screenLock.release()
    connSkt.close()


def portScan(tgtHost,tgtPorts):
  try:
    tgtIp = gethostbyname(tgtHost)
  except:
    print("[-] Cannot reslove '%s' : Unknown host" % tgtHost)
    return

  try:
    tgtName = gethostbyaddr(tgtIp)
    print("\n [+] Scan Result for: " + tgtName[0])
  except:
    print("\n [+] Scan Result for: " + tgtIp)

  setdefaulttimeout(1)
  for tgtPort in tgtPorts:
    print("Scanning port "+ tgtPort)
    t = Thread(target=connScan,args=(tgtHost,int(tgtPort)))
    t.start()

def main():
  parser = optparse.OptionParser("usage%prog -H <target host> -p <target port>")
  parser.add_option('-H',dest='tgtHost',type='string',help='specify target host')
  parser.add_option('-p',dest='tgtPort',type='string',help='specify target port[s] separated by comma')
  options,args = parser.parse_args()
  tgtHost = options.tgtHost
  tgtPorts = str(options.tgtPort).split(',')
  if(tgtHost == None or tgtPorts[0] == None):
    print("[-] You must specify a target host and port[s]")
    exit(0)
  portScan(tgtHost,tgtPorts)

if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
浅谈五大Python Web框架
Mar 20 Python
微信跳一跳python代码实现
Jan 05 Python
python and or用法详解
Jun 26 Python
Django 外键的使用方法详解
Jul 19 Python
python线程中的同步问题及解决方法
Aug 29 Python
python自动生成model文件过程详解
Nov 02 Python
Python改变对象的字符串显示的方法
Aug 01 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
Python基础之Socket通信原理
Apr 22 Python
python简单验证码识别的实现过程
Jun 20 Python
简单了解python协程的相关知识
Aug 31 #Python
利用rest framework搭建Django API过程解析
Aug 31 #Python
Python进度条的制作代码实例
Aug 31 #Python
python类的实例化问题解决
Aug 31 #Python
python检测服务器端口代码实例
Aug 31 #Python
python实现多线程端口扫描
Aug 31 #Python
python实现复制大量文件功能
Aug 31 #Python
You might like
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Python 如何批量更新已安装的库
2020/05/26 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis