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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
python去除所有html标签的方法
May 05 Python
python实现简易内存监控
Jun 21 Python
如何在django中添加日志功能
Feb 06 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
python 模拟登陆github的示例
Dec 04 Python
Python的collections模块真的很好用
Mar 01 Python
Django框架中模型的用法
Jun 10 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面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python如何统计序列中元素
2020/07/31 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
基于python操作ES实例详解
2019/11/16 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
浅析python函数式编程
2020/09/26 Python
快速创建python 虚拟环境
2020/11/28 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
药剂专业学生求职信范文
2013/12/28 职场文书
入党思想汇报
2014/01/05 职场文书
法人代表证明书格式
2014/10/01 职场文书
医院科室评语
2015/01/04 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
Python编写冷笑话生成器
2022/04/20 Python