python通过socket模块批量测试端口连通性
使用方法:
在脚本同文件夹下创建如下文件:
ip_ports.txt文件:保存需要测试的ip端口信息,每个一行,格式如下:
#ip:端口
#例子
127.0.0.1:8000 127.0.0.1:8001
port_results.txt文件:保存测试结果。
脚本代码:
import socket
def test_port_connection(host, port):
try:
# 创建socket对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
# 连接端口
sock.connect((host, port))
sock.close()
return f"{host}:{port} 连接成功"
except ConnectionRefusedError:
return f"{host}:{port} 连接被拒绝"
except TimeoutError:
return f"{host}:{port} 连接超时"
except Exception as e:
return f"{host}:{port} 发生异常: {str(e)}"
def batch_test_ports(hosts):
results = []
for host in hosts:
ip,port_str = host.split(':')
result = test_port_connection(ip, int(port_str))
print(result)
#写入测试结果
file=open('port_results.txt','a')
file.write(result+'\n')
return
def read_ip_port_list(file_path):
ip_port_list = []
with open(file_path, 'r') as file:
for line in file:
line = line.strip()
if line:
ip_port_list.append(line)
return ip_port_list
# 读取IP端口列表文件
ip_port_list = read_ip_port_list('ip_ports.txt')
# 进行批量测试
batch_test_ports(ip_port_list)
测试:
正文到此结束
温馨提示:
本文最后更新于 2024年05月01日,已超过 224 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
- 本文标签: Python
- 本文链接: https://blog.eyyyye.com/article/73
- 版权声明: 本文由比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权