0

1 つのドメイン名が複数の IP アドレスを持つことができることを知って驚きました。たとえば、次の結果が表示されDns.GetHostAddresses("www.google.com")ます。

{System.Net.IPAddress[6]}
    [0]: {74.125.127.147}
    [1]: {74.125.127.99}
    [2]: {74.125.127.103}
    [3]: {74.125.127.104}
    [4]: {74.125.127.105}
    [5]: {74.125.127.106}

(YMMV; アドレスは定期的に変わるようです)

これらのさまざまなアドレスはどこから来て、接続先の IP アドレスをどのように選択すればよいのでしょうか?

4

4 に答える 4

2

特に IP にバインドする理由がない限り、接続を確立した時点で DNS を使用して解決する必要があります。

「彼らはどこから来たのか」については、インフラストラクチャの決定がいくつもあるという答えが返ってきます。これが DNS の威力です。ロード バランシング、キャッシング、配信などのシステムは、あなた (クライアント) がその実装について心配することなく、任意の数のソースからドメイン (example.com) を動的に提供できます。

複数の DNS は、さまざまな要因に応じて、複数のサーバー、異なるデータセンター、キャッシュ ネットワークなどになる可能性があります。

于 2011-03-11T21:08:47.223 に答える
1

ある種の RoundRobin を使用している可能性が最も高いです。

ドメインが自分の管理下にない限り、信頼できるのはドメイン名のみです。

于 2011-03-11T21:10:09.547 に答える
0

IPアドレスは、照会されたドメイン名(例ではwww.google.com)に関連付けられたDNSサーバーから取得されます。これは、接続するサーバーのIPアドレスを取得するためにWebブラウザーが実行するプロセスと同じです。

どのIPアドレスに接続するかについては、すべて冗長であると思います。おそらく最初のIPアドレスに接続する必要がありますが、これは単なる推測であり、はっきりとはわかりません。

于 2011-03-11T21:12:13.673 に答える
0

あなたはいくつかのことをすることができます:

  1. すぐに System.Net.IPAddress[0] を使用してください。
  2. 6 つすべてに ping を実行して、どれが最も応答時間が長いかを確認し、その値をキャッシュして、後で使用することができます。
于 2011-03-11T21:15:49.713 に答える