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 __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
python实现基本进制转换的方法
Jul 11 Python
浅谈Python 对象内存占用
Jul 15 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
python机器学习之神经网络(三)
Dec 20 Python
django 将model转换为字典的方法示例
Oct 16 Python
对python3新增的byte类型详解
Dec 04 Python
python中dict使用方法详解
Jul 17 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
python识别验证码图片实例详解
Feb 17 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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP队列用法实例
2014/11/05 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
js中的replace方法使用介绍
2013/10/28 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
Python  连接字符串(join %)
2008/09/06 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python3.7 的新特性详解
2019/07/25 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
部队党性分析材料
2014/02/16 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
学校欢迎标语
2014/06/18 职场文书
我的长征观后感
2015/06/09 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis