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备份文件以及mysql数据库的脚本代码
Jun 10 Python
python使用点操作符访问字典(dict)数据的方法
Mar 16 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python中一行和多行import模块问题
Apr 01 Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 Python
Python中断多重循环的思路总结
Oct 04 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
Django使用Profile扩展User模块方式
May 14 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
python 如何调用远程接口
Sep 11 Python
Pytorch使用shuffle打乱数据的操作
May 20 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&amp;MYSQL留言板源码
2020/07/19 PHP
一篇入门的php Class 文章
2007/04/04 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
php创建类并调用的实例方法
2019/09/25 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
JS中数组重排序方法
2016/11/11 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python监控文件并且发送告警邮件
2018/06/21 Python
基于python指定包的安装路径方法
2018/10/27 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
拓展训练激励口号
2014/06/17 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
责任书格式
2015/01/29 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS