python实现的多线程端口扫描功能示例

作者:雪峰流云 时间:2023-02-02 10:18:29 

本文实例讲述了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,多线程,端口扫描
0
投稿

猜你喜欢

  • Django + Uwsgi + Nginx 实现生产环境部署的方法

    2023-01-01 06:02:49
  • Python 内置函数sorted()的用法

    2021-02-18 10:20:23
  • python实现粒子群算法

    2021-03-20 02:27:34
  • 详解python中的json的基本使用方法

    2022-03-15 22:29:13
  • python中setuptools的作用是什么

    2022-01-31 07:19:26
  • Python时区设置方法与pytz查询时区教程

    2022-05-20 17:11:51
  • Python处理文本换行符实例代码

    2021-08-19 18:31:51
  • python基于celery实现异步任务周期任务定时任务

    2021-06-14 05:20:26
  • 一个不错的js软键盘代码而且移植方便

    2007-08-14 12:56:00
  • 使用DataFrame删除行和列的实例讲解

    2021-03-05 21:06:04
  • ASP中使用Set ors=oConn.Execute()时获取记录数的方法

    2011-02-20 10:48:00
  • Django 后台带有字典的列表数据与页面js交互实例

    2021-12-01 01:59:39
  • 利用Pandas和Numpy按时间戳将数据以Groupby方式分组

    2022-01-04 01:47:44
  • Firefox的默认样式表

    2008-05-09 12:06:00
  • 基于Python3编写一个GUI翻译器

    2022-07-07 07:57:54
  • 解决pycharm上的jupyter notebook端口被占用问题

    2022-10-28 15:43:13
  • Python+Pygame实现之走四棋儿游戏的实现

    2023-08-29 21:34:55
  • Python实现的百度站长自动URL提交小工具

    2023-08-24 10:36:31
  • Python实现屏幕截图的代码及函数详解

    2023-06-19 11:30:29
  • 使用NetBox 编译 asp 为exe应用程序

    2009-11-29 16:13:00
  • asp之家 网络编程 m.aspxhome.com