原创

python通过socket模块批量测试端口连通性

使用方法:

在脚本同文件夹下创建如下文件:

ip_ports.txt文件:保存需要测试的ip端口信息,每个一行,格式如下:

#ip:端口
#例子
127.0.0.1:8000127.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 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
本文目录