如何在Python中选择最近/最快的镜像?

时间:2011-05-28 01:47:58

标签: python ping geo geoip

我一直在考虑如何在Python中实现镜像选择。当我调用服务API时,我得到了IP地址的响应。现在我想拿那个地址,看看它是否接近我。如果没有,请重试。我考虑过ping,因为我只有~1ms ping到同一数据中心托管的IP地址,但全世界的IP地址要高得多。我查看了一些如何在Python中实现ping的示例,但它看起来相当复杂并且感觉有点hackish(比如检查目标IP是否小于10ms)。可能有更好的方法来解决这个问题,我可能不知道。

你有什么想法?我每次都无法下载任何测试文件来测试速度。 GeoIP还是ping?或其他什么?

2 个答案:

答案 0 :(得分:4)

YUM fastestmirror plugin使用粗略的方法来计算连接到远程服务器上的端口所需的时间。虽然它的原油,它测量滞后而不是带宽,但它是相当有效的:

time_before = time.time()
sock.connect((self.host, self.port))
result = time.time() - time_before
sock.close()

答案 1 :(得分:1)

调用所有服务API实例并使用最快响应的实例。