我需要尝试连接到域以确定特定服务器是否在线
我尝试使用套接字创建连接,但即使域在线,它也从未建立连接
import socket
def ConnectionTest():
domain = "www.something.com/uptimecheck"
try:
socket.create_connection((domain, 443))
return True
except OSError:
pass
return False
即使我知道域在线,连接测试也总是返回 False,而理论上它应该返回 true。
我在这里做错了什么?
最佳答案
您正在 443 上连接服务器,这意味着您只是检查 TCP 套接字,应用层协议(protocol)为 HTTPS,即远程端套接字元组为 (<server_ip>, 443)
.
因此您可以使用典型的网络客户端,例如requests
是一个(使用 pip install requests
安装它,如果尚未完成):
import requests
def is_online(url):
response = requests.get(url)
return response.status_code == 200
现在,您可以执行以下操作:
url = "https://www.something.com/uptimecheck"
url_is_online = is_online(url)
请注意,我已将协议(protocol) ( https
) 添加到 URL 路径。
关于python - 使用 python 连接到域以确定服务器是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840115/