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 'total open port is %s, scan used time is: %f ' % (openPortNum, time.time()-t)
运行效果图
希望本文所述对大家Python程序设计有所帮助。
标签:python,多线程,端口扫描
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Django + Uwsgi + Nginx 实现生产环境部署的方法
2023-01-01 06:02:49
![](https://img.aspxhome.com/file/2023/2/68982_0s.png)
Python 内置函数sorted()的用法
2021-02-18 10:20:23
python实现粒子群算法
2021-03-20 02:27:34
![](https://img.aspxhome.com/file/2023/9/72049_0s.jpg)
详解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
![](https://img.aspxhome.com/file/2023/5/67225_0s.png)
python基于celery实现异步任务周期任务定时任务
2021-06-14 05:20:26
![](https://img.aspxhome.com/file/2023/0/109350_0s.png)
一个不错的js软键盘代码而且移植方便
2007-08-14 12:56:00
![](https://img.aspxhome.com/file/UploadPic/up/2007081413364471.jpg)
使用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
![](https://img.aspxhome.com/file/2023/7/80637_0s.gif)
解决pycharm上的jupyter notebook端口被占用问题
2022-10-28 15:43:13
![](https://img.aspxhome.com/file/2023/6/115426_0s.jpg)
Python+Pygame实现之走四棋儿游戏的实现
2023-08-29 21:34:55
![](https://img.aspxhome.com/file/2023/2/62312_0s.png)
Python实现的百度站长自动URL提交小工具
2023-08-24 10:36:31
Python实现屏幕截图的代码及函数详解
2023-06-19 11:30:29
使用NetBox 编译 asp 为exe应用程序
2009-11-29 16:13:00