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中的zip函数使用示例
Jan 29 Python
简洁的十分钟Python入门教程
Apr 03 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
利用Python检测URL状态
Jul 31 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
基于Python快速处理PDF表格数据
Jun 03 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 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文件操作简单介绍及函数汇总
2020/12/11 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
python MD5加密的示例
2020/10/19 Python
python实现三种随机请求头方式
2021/01/05 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
成人教育自我鉴定
2013/11/01 职场文书
大学生职业规划论文
2014/01/11 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
安全教育感言
2014/03/04 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers