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中处理unchecked未捕获异常实例
Jan 17 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
Python实现图片转字符画的代码实例
Feb 22 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Python中私有属性的定义方式
Mar 05 Python
django ORM之values和annotate使用详解
May 19 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
FP-growth算法发现频繁项集——构建FP树
Jun 24 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中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
Python3 能振兴 Python的原因分析
2014/11/28 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
python中pow函数用法及功能说明
2020/12/04 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
后勤人员岗位职责
2013/12/17 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
办公室主任先进事迹
2014/01/18 职场文书
亮化工程实施方案
2014/03/17 职场文书
新闻编辑求职信
2014/07/13 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书