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中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
python比较2个xml内容的方法
May 11 Python
八大排序算法的Python实现
Jan 28 Python
用Django实现一个可运行的区块链应用
Mar 08 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
如何使用python操作vmware
Jul 27 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 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+dbfile开发小型留言本
2006/10/09 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
js调用flash的效果代码
2008/04/26 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
理解AngularJs指令
2015/12/10 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
python3 配置logging日志类的操作
2020/04/08 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
简单叙述一下MYSQL的优化
2016/05/09 面试题
电子商务网站的创业计划书
2014/01/05 职场文书
医院见习报告范文
2014/11/03 职场文书
学习保证书
2015/01/17 职场文书
复试通知单模板
2015/04/24 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技