Я написал тестовую программу для перехвата пакетов для заданного доменного имени. Я использовал gethostbyname() для получения IP-адреса и pcap для захвата пакетов, предназначенных для этого IP-адреса. Счетчик pcap_loop() был установлен на -1, поэтому он должен продолжать захват.
Теоретически все пакеты, которые отправляются с моего компьютера на этот IP-адрес, будут перехвачены, независимо от того, посещается ли это доменное имя веб-браузером или просто пингуется, верно?
После тестирования, хотя это верно для многих веб-сайтов, это неприменимо для сайтов с высоким трафиком, таких как google или ebay. Это означает, что если я пропингую IP-адрес, полученный из gethostbyname (), пакеты ping будут перехвачены программой, но если я зайду на google.com в Firefox, пакеты не будут перехвачены. Это показывает, что может быть другой IP-адрес для одного и того же доменного имени, такого как google.com.
Если это так, то почему DNS-сервер возвращает разные ip-адреса для google.com, а другие идентичны? И в чем разница, если она есть, между запросами от gethostbyname() и запросами из веб-браузера?
Заранее спасибо.
gethostbyname()
, или только для первого? - person Celada   schedule 04.06.2013getaddrinfo()
вместоgethosybyname()
.gethostbyname()
устарело. - person Celada   schedule 04.06.2013