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运行其他程序的实现方法
Jul 14 Python
Scrapy的简单使用教程
Oct 24 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
python os.path模块常用方法实例详解
Sep 16 Python
python根据url地址下载小文件的实例
Dec 18 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
使用darknet框架的imagenet数据分类预训练操作
Jul 07 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
Python OpenGL基本配置方式
May 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
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php比较相似字符串的方法
2015/06/05 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
php bootstrap实现简单登录
2016/03/08 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
pytorch构建多模型实例
2020/01/15 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
广告公司文案策划岗位职责
2015/04/14 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
python3 sqlite3限制条件查询的操作
2021/04/07 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL