在python中获取ping时间

时间:2016-06-15 06:43:00

标签: python windows python-3.x

我制作了一个程序,告诉我是否连接到互联网。现在我希望它能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的简单方法。 这不是重复,因为它没有回答我的问题。

1 个答案:

答案 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