我制作了一个程序,告诉我是否连接到互联网。现在我希望它能ping到www.google.com并以毫秒为单位显示ping时间。我不想使用任何第三方软件或下载任何东西。
编辑: 我的代码是:
def is_connected():
try:
# see if we can resolve the host name -- tells us if there is
# a DNS listening
host = socket.gethostbyname(REMOTE_SERVER)
# connect to the host -- tells us if the host is actually
# reachable
s = socket.create_connection((host, 80), 2)
return True
except:
pass
return False
上面的代码告诉我我是否连接到互联网。 我想要的是一种显示网站ping的简单方法。 这不是重复,因为它没有回答我的问题。
答案 0 :(得分:2)
ping 不与HTTP连接相同!第一个是低级ICMP数据包,用于测试连接并主要在本地网络上查找往返时间。它通常不在广泛的互联网上使用,因为出于安全原因,它经常被防火墙和外部路由器阻止。
如果您想知道建立与服务器连接所需的时间,请在现实世界中做您想做的事情:看看您的手表,完成工作,再看一下手表以查看已用时间。在Python中它给出了
#import time
...
def connect_time():
try:
# see if we can resolve the host name -- tells us if there is
# a DNS listening
host = socket.gethostbyname(REMOTE_SERVER)
# connect to the host -- tells us if the host is actually
# reachable
before = time.clock() # from Python 3.3 and above use before = time.perf_counter()
s = socket.create_connection((host, 80), 2)
after = time.clock() # from Python 3.3 and above use after = time.perf_counter()
return after - before
except:
return -1