Python实现的端口扫描功能示例
作者:chengqiuming 时间:2022-06-25 10:42:04
本文实例讲述了Python实现的端口扫描功能。分享给大家供大家参考,具体如下:
一 代码
import sys
import socket
import multiprocessing
def ports(ports_service):
#获取常用端口对应的服务名称
for port in list(range(1,100))+[143,145,113,443,445,3389, 8080]:
try:
ports_service[port] = socket.getservbyport(port)
except socket.error:
pass
def ports_scan(HOST, ports_service):
ports_open = []
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#sock.settimeout(60)
except socket.error:
print('socket creation error')
sys.exit()
for port in ports_service:
try:
#尝试连接指定端口
sock.connect((HOST,port))
#记录打开的端口
ports_open.append(port)
sock.close()
except socket.error:
pass
return ports_open
if __name__=='__main__':
m = multiprocessing.Manager()
ports_service = dict()
results = dict()
ports(ports_service)
#创建进程池,允许最多8个进程同时运行
pool = multiprocessing.Pool(processes=8)
net = '192.168.0.'
for host_number in map(str,range(105,106)):
host = net+host_number
#创建一个新进程,同时记录其运行结果
results[host] = pool.apply_async(ports_scan, (host, ports_service))
print('starting '+host+'...')
#关闭进程池,close()必须在join()之前调用
pool.close()
#等待进程池中的进程全部执行结束
pool.join()
#打印输出结果
for host in results:
print('='*30)
print(host,'.'*10)
for port in results[host].get():
print(port, ':', ports_service[port])
二 运行结果
starting 192.168.0.105...
==============================
192.168.0.105 ..........
80 : http
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/chengqiuming/article/details/78601148
标签:Python,端口扫描
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python入门_浅谈for循环、while循环
2021-02-07 13:17:23
![](https://img.aspxhome.com/file/2023/0/85130_0s.jpg)
Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作
2023-07-07 08:25:36
![](https://img.aspxhome.com/file/2023/0/63360_0s.jpg)
新年伊始,看各大网站新春LOGO
2009-01-01 19:35:00
![](https://img.aspxhome.com/file/UploadPic/20091/1/114040f01010p00001031-53s.gif)
python爬取微博评论的实例讲解
2022-01-10 19:53:14
asp如何将统计的访问者数目周期性地保存?
2009-11-26 20:54:00
如何使用Python对Excel表格进行拼接合并
2021-03-15 18:01:54
![](https://img.aspxhome.com/file/2023/9/76039_0s.png)
python使用pandas进行量化回测
2021-10-12 12:37:29
![](https://img.aspxhome.com/file/2023/2/115852_0s.png)
自己收集比较强大的分页存储过程 推荐
2011-11-03 17:10:20
识别操作系统是不是vista的js代码
2013-10-20 19:08:25
Python drop方法删除列之inplace参数实例
2023-07-23 23:26:49
Python使用xlrd和xlwt批量读写excel文件的示例代码
2022-09-17 01:54:54
![](https://img.aspxhome.com/file/2023/5/79735_0s.png)
详解Python 实现元胞自动机中的生命游戏(Game of life)
2023-05-31 07:11:54
![](https://img.aspxhome.com/file/2023/2/120992_0s.png)
使用python求解迷宫问题的三种实现方法
2022-10-25 01:16:35
![](https://img.aspxhome.com/file/2023/2/78602_0s.jpg)
Python用dilb提取照片上人脸的示例
2021-07-04 23:34:47
![](https://img.aspxhome.com/file/2023/0/66410_0s.png)
利用XMLHTTP无刷新自动实时更新数据
2008-02-19 18:29:00
Active Server Pages 错误 “ASP 0141”
2009-08-19 17:10:00
Python解决走迷宫问题算法示例
2023-04-18 02:14:45
如何基于Python实现自动扫雷
2023-12-13 15:51:08
![](https://img.aspxhome.com/file/2023/8/85128_0s.jpg)
python过滤中英文标点符号的实例代码
2022-11-09 13:43:09
Python中选择结构实例讲解
2023-06-26 14:56:09