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之模拟鼠标键盘动作具体实现
Dec 30 Python
Python实现基本线性数据结构
Aug 22 Python
python实现批量修改文件名代码
Sep 10 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python3+PyQt5实现柱状图
Apr 24 Python
Python3.5 创建文件的简单实例
Apr 26 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python实现人工智能Ai抠图功能
Sep 05 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
python退出循环的方法
Jun 18 Python
如何基于Django实现上下文章跳转
Sep 16 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
毕业自荐书
2013/12/09 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
投标担保书范文
2014/04/02 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
纪检监察建议书
2014/05/19 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
小学英语教学随笔
2015/08/14 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python