주어진 도메인 이름에 대한 패킷을 캡처하는 테스트 프로그램을 작성했습니다. gethostbyname()을 사용하여 IP 주소를 검색하고 pcap을 사용하여 해당 IP 주소로 향하는 패킷을 캡처했습니다. pcap_loop() 수는 -1로 설정되어 캡처를 유지해야합니다.gethostbyname()에 의해 검색된 IP 주소는 연결된 브라우저와 다릅니다
이론적으로, 내 PC에서 해당 IP 주소로 보내는 모든 패킷은 해당 도메인 이름이 웹 브라우저에서 방문했는지 또는 ping을 수행했는지에 관계없이 캡처됩니다.
많은 웹 사이트에서 테스트되었지만 google이나 ebay와 같은 트래픽이 많은 사이트에는 적용 할 수 없습니다. 의미는 내가 gethostbyname()에서 검색된 IP 주소를 Ping 패킷이 프로그램에 의해 캡처되지만, 내가 파이어 폭스에서 google.com을 방문하면 패킷이 캡처되지 않는다는 의미입니다. 이는 google.com과 같은 도메인 이름에 대해 다른 IP 주소가 있음을 보여줍니다.
그렇다면 DNS 서버가 google.com에 다른 ips를 반환하는 이유는 무엇입니까? 그리고 gethostbyname()과 웹 브라우저의 요청 사이에는 어떤 차이가 있습니까?
미리 감사드립니다.
'gethostbyname()'에 의해 반환 된 IP 주소 중 ** 모든 ** 주소에 대한 트래픽을 캡처합니까, 아니면 첫 번째 주소로만 트래픽을 캡처합니까? – Celada
gethostbyname()은 struct hostent에서 하나의 IP 주소 만 반환합니까? – AuA
아니요, 배열을 반환합니다. 그런데'gethosybyname()'대신'getaddrinfo()'를 사용하는 것을 고려해야한다. 'gethostbyname()'은 더 이상 사용되지 않으며 더 이상 사용되지 않습니다. – Celada