欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 代码 测试 ip 端口连通性 通义 chatgpt 有大用 有大大用

在Python中,你可以使用socket模块来编写一个简单的脚本,测试某个IP地址上的特定端口是否连通。下面是一个基础示例:

Python
1import socket 2 3def test_connection(ip, port): 4    try: 5        # 创建一个TCP套接字 6        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 7 8        # 设置超时时间,防止长时间等待 9        sock.settimeout(5)  # 例如设置为5秒超时 10 11        # 尝试连接到指定的IP和端口 12        sock.connect((ip, port))
             # msg = s.recv(1024)  有这一行代码 似乎 80 端口就有问题 
13 14        # 如果成功连接到这里,则端口是开放的 15        print(f"连接成功,{ip}:{port}端口是开放的。") 16         17        # 关闭套接字 18        sock.close() 19 20    except socket.timeout: 21        print(f"连接超时,{ip}:{port}可能没有响应或端口未开放。") 22 23    except socket.gaierror: 24        print(f"无法解析主机名:{ip}") 25 26    except socket.error as err: 27        # 其他错误,如连接被拒绝 28        print(f"连接错误:{err}") 29        if 'Connection refused' in str(err):   30            print(f"{ip}:{port}端口未开放。") 31 32    finally: 33        # 确保套接字关闭 34        if sock is not None: 35            sock.close() 36 37# 使用函数测试一个IP和端口 38test_connection('192.168.1.1', 80)

这个脚本会尝试连接到指定的IP地址和端口,如果连接成功则表明端口是开放的,否则根据不同的异常来判断可能是连接超时、无法解析主机名,或者是连接被拒绝(在这种情况下通常意味着端口未开放)。请注意,在实际应用中,尤其是大规模或持续的端口扫描时,应遵循适当的法律法规,并确保已获得必要的权限。


普通分类: