欢迎访问宙启技术站
智能推送

Python函数:如何检查网络连接是否存在

发布时间:2023-07-03 05:48:02

在Python中,可以使用socket模块来检查网络连接是否存在。下面是一个示例函数,用于检查某个主机和端口是否可连接:

import socket

def check_connection(host, port):
    try:
        # 创建一个套接字对象
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 设置超时时间为2秒
        sock.settimeout(2)
        # 尝试连接主机和端口
        result = sock.connect_ex((host, port))
        if result == 0:
            print(f"Connection to {host}:{port} is successful")
        else:
            print(f"Unable to connect to {host}:{port}")
        # 关闭套接字连接
        sock.close()
    except socket.error as err:
        print(f"Exception: {err}")

# 测试连接到google的80端口
check_connection('www.google.com', 80)

上述代码中,我们使用socket.socket()函数创建了一个套接字对象。AF_INET参数指定了使用IPV4地址族,SOCK_STREAM参数表示使用TCP协议。然后,我们使用套接字对象的settimeout()方法设置了一个连接的超时时间,这里设置为2秒。

接下来,我们使用connect_ex()方法尝试连接到指定的主机和端口。如果返回值为0,则表示连接成功,否则表示连接失败。

最后,我们关闭了套接字连接。

上述示例可以应用于大多数情况下的网络连接检测。但请注意,尽管我们设定了超时时间,但某些情况下仍可能会出现网络请求长时间无响应的情况。可以根据具体需求进行适当的调整。另外,该示例中的打印信息可以根据实际情况进行定制。