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查找第k小元素代码分享
Dec 18 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
python用requests实现http请求代码实例
Oct 31 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
你可能不知道的Python 技巧小结
Jan 29 Python
python绘制封闭多边形教程
Feb 18 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
jupyter notebook参数化运行python方式
Apr 10 Python
python 星号(*)的多种用途
Sep 21 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
eAccelerator的安装与使用详解
2013/06/13 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
中学生关于梦想的演讲稿
2014/08/22 职场文书
单位委托书
2014/10/15 职场文书
新店开张宣传语
2015/07/13 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android
Go语言编译原理之源码调试
2022/08/05 Golang