2

Python でミラー ピッキングを実装する方法を考えていました。サービス API を呼び出すと、IP アドレスで応答が返されます。今、私はその住所を取得して、それが私の近くにあるかどうかを確認したいと思います. そうでない場合は、再試行してください。同じデータセンターでホストされている IP アドレスへの ping は最大 1 ミリ秒しかありませんが、世界中でははるかに高いため、ping について考えました。Pythonでpingを実装する方法の例をいくつか調べましたが、かなり複雑で、少しハックな気がします(ターゲットIPが10ms未満かどうかを確認するなど)。この問題に取り組むには、私が気付いていないより良い方法があるかもしれません。

あなたのアイデアは何ですか?速度をテストするために毎回テスト ファイルをダウンロードすることはできません。GeoIP または ping? または、他の何か?

4

2 に答える 2

4

YUM fastmirror プラグインは、リモート サーバーのポートに接続するのにかかる時間を計測する粗雑な方法を使用します。粗雑ですが、帯域幅ではなく遅延を測定しますが、かなり効果的です。

time_before = time.time()
sock.connect((self.host, self.port))
result = time.time() - time_before
sock.close()
于 2011-05-28T07:10:10.843 に答える
1

すべてのサービス API インスタンスを呼び出し、応答が最も速いものを使用します。

于 2011-05-28T01:50:18.743 に答える