python实现的多线程端口扫描功能示例


Posted in Python onJanuary 21, 2017

本文实例讲述了python实现的多线程端口扫描功能。分享给大家供大家参考,具体如下:

下面的程序给出了对给定的ip主机进行多线程扫描的Python代码

#!/usr/bin/env python
#encoding: utf-8
import socket, sys, thread, time
openPortNum = 0
socket.setdefaulttimeout(3)
def usage():
  print '''''Usage:
  Scan the port of one IP: python port_scan_multithread.py -o <ip>
  Scan the port of one IP: python port_scan_multithread.py -m <ip1, ip2, ip3, ip4 ...>
  '''
  print 'Exit'
  sys.exit(1)
def socket_port(ip, PORT):
  global openPortNum
  if PORT > 65535:
    print 'Port scanning beyond the port range, interrupt to scan'
    sys.exit(1)
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  result = s.connect_ex((ip, PORT))
  if(result == 0):
    print ip, PORT,'is open'
    openPortNum += 1
  s.close()
def start_scan(IP):
  for port in range(0, 65535+1):
    thread.start_new_thread(socket_port, (IP, int(port)))
    time.sleep(0.006)
if __name__ == '__main__':
  t = 0
  if len(sys.argv)<2 or sys.argv[1] == '-h':
    usage()
  elif sys.argv[1] == '-o':
    ONE_IP = raw_input('Please input ip of scanning: ')
    t = time.time()
    start_scan(ONE_IP)
  elif sys.argv[1] == '-m':
    MANY_IP = raw_input('Please input many ip of scanning: ')
    IP_SEG = MANY_IP.split(',')
    t = time.time()
    for i in IP_SEG:
      start_scan(i)
  print
  print 'total open port is %s, scan used time is: %f ' % (openPortNum, time.time()-t)

运行效果图

python实现的多线程端口扫描功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python抓取京东商城手机列表url实例代码
Dec 18 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
解决python大批量读写.doc文件的问题
May 08 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
Python把图片转化为pdf代码实例
Jul 28 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
Python 字符串大小写转换的简单实例
Jan 21 #Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 #Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 #Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 #Python
python 查找字符串是否存在实例详解
Jan 20 #Python
python django 访问静态文件出现404或500错误
Jan 20 #Python
python中实现迭代器(iterator)的方法示例
Jan 19 #Python
You might like
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
python模糊图片过滤的方法
2018/12/14 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Django--权限Permissions的例子
2019/08/28 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
书法培训心得体会
2014/01/05 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书