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实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
OpenCV 边缘检测
Jul 10 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
如何真正的了解python装饰器
Aug 14 Python
浅析Django接口版本控制
Jun 26 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
Python命令启动Web服务器实例详解
2017/02/23 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
python 读入多行数据的实例
2018/04/19 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
人力资源经理自我评价
2014/01/04 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
入党介绍人评语
2014/05/06 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书