特定のドメイン名のパケットをキャプチャするテスト プログラムを作成しました。gethostbyname() を使用して IP アドレスを取得し、pcap を使用してその IP アドレス宛てのパケットをキャプチャしていました。pcap_loop() のカウントは -1 に設定されているため、キャプチャを続けることになっています。
理論的には、私の PC からその IP アドレスに送信されるすべてのパケットは、そのドメイン名が Web ブラウザーによってアクセスされたか、単に ping によってアクセスされたかに関係なく、キャプチャされますよね?
テスト後、これは多くの Web サイトに当てはまりますが、google や ebay のようなトラフィックの多いサイトには当てはまりません。つまり、gethostbyname() から取得した IP アドレスに ping を実行すると、プログラムによって ping パケットがキャプチャされますが、firefox で google.com にアクセスすると、パケットはキャプチャされません。これは、google.com のような同じドメイン名に対して別の IP アドレスが存在する可能性があることを示しています。
その場合、DNS サーバーが google.com に対して異なる IP を返すのに、他の IP は同一であるのはなぜですか? また、gethostbyname() からのリクエストと Web ブラウザからのリクエストに違いがあるとすれば、それは何ですか?
前もって感謝します。