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 3中实现类型检查器的简单方法
Jul 03 Python
Python 模块EasyGui详细介绍
Feb 19 Python
使用Python写CUDA程序的方法
Mar 27 Python
python 利用栈和队列模拟递归的过程
May 29 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
python实现对输入的密文加密
Mar 20 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
Python绘图之柱形图绘制详解
Jul 28 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
python实现经纬度采样的示例代码
Dec 10 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
微信支付开发告警通知实例
2016/07/12 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
图解javascript作用域链
2019/05/27 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
keras 多gpu并行运行案例
2020/06/10 Python
解决python对齐错误的方法
2020/07/16 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
九一八事变演讲稿
2014/09/05 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
小浪底导游词
2015/02/12 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
你会写请假条吗?
2019/06/26 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers