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 相关文章推荐
Python操作列表之List.insert()方法的使用
May 20 Python
Python检测生僻字的实现方法
Oct 23 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Python之列表的插入&amp;替换修改方法
Jun 28 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Python过滤序列元素的方法
Jul 31 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
浅析python函数式编程
Sep 26 Python
Python扫描端口的实现
Jan 25 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
js身份证验证超强脚本
2008/10/26 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
详解Python中的循环语句的用法
2015/04/09 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
Python中字典的setdefault()方法教程
2017/02/07 Python
itchat接口使用示例
2017/10/23 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
如何在存储过程中使用Loop
2016/01/05 面试题
教师批评与自我批评总结
2014/10/16 职场文书
金秋助学感谢信
2015/01/21 职场文书
公司更名通知函
2015/04/24 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
《颐和园》教学反思
2016/02/19 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python