Python3多线程版TCP端口扫描器

作者:刺青LOVELESS 时间:2021-07-13 21:25:45 

本文实例为大家分享了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()

来源:https://blog.csdn.net/ciqingloveless/article/details/84994330

标签:python3,TCP,端口扫描器
0
投稿

猜你喜欢

  • 使用 XSLT 解释 XML 文件

    2009-03-08 19:06:00
  • 轻松解决AJAX的中文乱码问题

    2008-09-03 12:55:00
  • MySQL聚焦Web 2.0可扩展性

    2012-01-05 19:02:19
  • 使用pyinstaller逆向.pyc文件

    2021-09-10 01:34:23
  • Python常用标准库详解(pickle序列化和JSON序列化)

    2022-04-08 12:50:56
  • 详解Python中的Descriptor描述符类

    2021-10-16 10:10:35
  • 对Django中内置的User模型实例详解

    2022-10-31 05:03:10
  • 利用Python如何生成hash值示例详解

    2022-02-28 23:29:25
  • Python OpenCV实现姿态识别的详细代码

    2023-05-27 23:42:31
  • 如何在ASP里面创建GUID

    2008-01-08 19:13:00
  • MySQL中SQL的单字节注入与宽字节注入

    2009-03-25 14:49:00
  • scrapy自定义pipeline类实现将采集数据保存到mongodb的方法

    2021-03-20 02:55:59
  • Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法

    2021-01-15 12:48:34
  • Python绘制动态的521玫瑰花

    2021-05-05 09:31:03
  • 利用Python读取微信朋友圈的多种方法总结

    2023-02-12 20:47:20
  • 如何利用python给图片添加半透明水印

    2022-08-16 09:34:28
  • python区块链简易版交易完善挖矿奖励示例

    2023-02-26 20:02:11
  • 关于Python3的import问题(pycharm可以运行命令行import错误)

    2022-11-11 11:34:11
  • 对numpy数据写入文件的方法讲解

    2022-01-24 21:09:31
  • Python用zip函数同时遍历多个迭代器示例详解

    2023-09-28 06:09:41
  • asp之家 网络编程 m.aspxhome.com