ドメインの**すべて**のIPアドレスを取得するにはどうすればよいですか?
http://beej.us/guide/bgnet/html/multi/syscalls.html#getaddrinfo で提供されるgetaddrinfo()サンプルをビルドしました
Facebook.comなどのサンプルドメインで実行すると、次の3つのIPアドレスが表示されます。
IPv4: 69.63.189.11
IPv4: 69.63.189.16
IPv4: 69.63.181.12
ただし、次の回答からわかるように、facebook.comにはかなり多くのアドレス(少なくとも20)があることがわかります。
http://wiki.answers.com/Q/Discuss:What_is_the_IP_address_for_Facebook
その答えは時間のスナップショットであり、将来変更される可能性があります。そのコードの実行時にドメインが使用するIPアドレスallをリストするコードを実装できるようにしたいと思います。
それを達成する方法はありますか?もしそうなら、どのように?
コンピュータのアップストリームで透過プロキシを使用できます。
1台のコンピューターの場合は、hostsファイルと特別なDNSサーバーを使用して、facebook.comとwww.facebook.comの偽のエントリを作成し、DNSレコードを汚染しました。 「あなたは逮捕されました」というページのあるページを指しています。
これは、ユーザーが匿名プロキシの使用方法を理解するまでは問題ありません。
いくつかのステップの後、これは本当に人間の問題になります。ビジネスの場合、それはビジネスポリシーになり、人事に該当します。自宅にいる場合は、子供のコンピュータの時間を監視します。
Facebook.comのDNSサーバーはこれら3つだけを提供している可能性が高いため、そうではありません。単に他のことを教えていないだけです。
これは多くの理由で行われます。一部のサーバーは地理的にユーザーの近くに配置されるため、DNSサーバーがそれらのIPを優先します。潜在的なDoS攻撃を抑制する手段として、DNSサーバーは、facebook.comが使用する「すべての」IPについて誰も知ることができないようにします。
しかし、主にそれはロードバランシングに関するものです。 1時間後にもう一度お試しください。おそらく3つのdifferent IPが表示されます。これは、すべてのサーバー間で負荷を分散したいため、DNSは、トラフィックが少ないホストを、トラフィックが多いホストよりも優先します。
DNS設定によっては、すべてのIPを取得できない場合があります。一部のサービスは、すべての場所のすべてのホストエントリを公開しません。つまり、ドメインのすべてのDNSエントリを取得した場合でも、特定の場所に関連するエントリしか取得できない場合があります。
そして、私はラウンドロビンの状況を追加しようとしていましたが、ディーンが述べたように、再試行すると、おそらく他の3つのIPを取得します。また、facebook.comで高速検索を行いましたが、追加のDNSセキュリティ機能がいくつかあるため、追加情報を取得するのがさらに困難になっています。