Я пытаюсь разрешить IP-адрес URL-адреса с помощью getaddrinfo(), но он всегда возвращает неправильный IP-адрес, я пробовал с несколькими URL-адресами, и результат тот же. любая помощь будет принята с благодарностью.
Программа возвращает IP-адрес: 209.85.175.99 вместо возврата реального IP-адреса, который равен 74.125.39.147.
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main()
{
char *hostname = "www.google.lk";
struct addrinfo hints, *res;
struct in_addr addr;
int err;
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM;
hints.ai_family = AF_INET;
if ((err = getaddrinfo(hostname, NULL, &hints, &res)) != 0) {
printf("error %d\n", err);
return 1;
}
addr.s_addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;
printf("ip address : %s\n", inet_ntoa(addr));
freeaddrinfo(res);
return 0;
}
stackoverflow.com
? (Разрешение имен серверов Google зависит даже от того, откуда вы их разрешаете.) - person Sven Marnach   schedule 11.10.2011-Wall
, некоторые заголовочные файлы отсутствуют.. - person Karoly Horvath   schedule 14.11.2011