web-dev-qa-db-ja.com

他のサーバーとの待ち時間でサーバーを特定する

彼が管理者権限を持っているサーバーを見つける方法を考えました。これまでの私の「最善の」アイデアは、大量のサーバーにpingを実行し、これらのサーバーへのホストの遅延を測定してから、当局によるスマートフォンの三角測量で行われるようにホストの場所を計算することです。

ルーティングは複雑で、リクエストを送信するホストの影響を受けないため、これは正確ではないことを私は知っていますが、これにより、ホストが長期間にわたってどこにあるかについてかなり良いアイデアが得られるべきではありませんか?

また、このアイデアの既知の実装はありますか?

2
davidb

サーバーの負荷とネットワークの輻輳によって引き起こされる変動を取り除くことができるように十分な測定値があれば、システムの「ネットワークの場所」を特定できるはずです。これらの測定値が地理的な位置を取得するのに十分正確であるとは思えませんが、少なくとも出発点になる可能性があります。

使用できるその他の情報は、IPアドレス(Geo IP)に関する地理情報です。これは、残念ながら非常に不正確であり、完全に間違っている場合もあります(遠く離れた別の国を指している場合もあります)。 tracerouteを使用して、2つのシステム間のルーターを検出することもできます。つまり、ホップの数だけでなく、さまざまなシステム間で共有されているホップも検出できます。しかし、最終的には、おそらく多くのヒューリスティックであり、多くの結果が間違っているでしょう。

興味深い関連記事として、 500マイルの電子メール の場合を参照してください。

6
Steffen Ullrich

いいえ、サーバーの距離は2倍になりますが、ほとんどの場合、高速ファイバーを使用できます。すぐ隣にあり、56kモデムに接続されていて、ポイントに到達する前に世界中に再ルーティングされる可能性がある場所。私はそれがありそうもないことを知っています。しかし、それから得られるべきことは、ギア、ネットワークグリッド、ルーティングなどが遅延に大きな違いをもたらすということです。したがって、距離を決定するのに非常に不正確になります。

IPジオロケーションAPIを使用して、サーバーがどこにあるかを把握し、そこからの距離を測定します。正確な場所を取得することはできませんが、待ち時間よりも正確な一般的な場所を取得できます。

すべてのサーバーの場所がわかっている場合は、経度と緯度の座標を使用して場所の独自のデータベースを作成します。次に、適切にジオロケートして、可能な限り最も正確な方法で距離を取得できます。

「管理者権限のあるサーバーを見つける方法を考えただけです」とあなたが何をしているのか正確にはわかりません。ただし、管理アクセスポリシーを設定する手段として、遅延や距離は使用しません。

4
Bacon Brad