python到某个ip的连通

校园网要认证,未认证时,

s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
s.settimeout(3)
s.connect(('某ip',80))
s.close()

也能正常运行。
请教下如何测试到指定ip的网络是否正常。

阅读 2.3k
2 个回答

类似这样

try:
    if protocol.upper() == 'UDP':
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    else:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    if port == 443:
        sock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_SSLv23)

    sock.settimeout(2)
    sock.connect((address, port))
    return True
except socket.error as e:
    return False
except Exception as e:
    return False
finally:
    sock.close()

s.connect(('某ip',80))你这个如果连接出错的话,会返回socket.error的错误,你是否可以根据这个error来判断呢。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题