2013-08-20 3 views
1

Как получить IP-адрес от имени хоста на iOS?Как получить IP-адрес от имени хоста на iOS

Я пробовал Google, но ничего не нашел.

+0

Нет, я хочу IP-адрес имени хоста. Fx. Я даю приложению имя хоста Google.com, и он возвращает ip. – Hedam

+0

Не можете ли вы просто ping имя хоста и захватить отвечающий IP? – Luke

+0

Хорошо, тогда [этот] (http://stackoverflow.com/questions/9567521/obiving-a-server-ip-address-from-hostname) –

ответ

7

Следующий код работает как с IPv4, так и с IPv6. Он использует getaddrinfo() для для получения списка IP-адресов для хоста и getnameinfo() для преобразования каждого IP-адреса в строку. (Ошибка проверки опущена для краткости.)

struct addrinfo hints; 
memset(&hints, 0, sizeof(hints)); 
hints.ai_family = PF_UNSPEC;  // PF_INET if you want only IPv4 addresses 
hints.ai_protocol = IPPROTO_TCP; 

struct addrinfo *addrs, *addr; 

getaddrinfo("www.google.com", NULL, &hints, &addrs); 
for (addr = addrs; addr; addr = addr->ai_next) { 

    char host[NI_MAXHOST]; 
    getnameinfo(addr->ai_addr, addr->ai_addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST); 
    printf("%s\n", host); 

} 
freeaddrinfo(addrs); 
+0

Получил эту ошибку: определение «struct addrinfo» должно быть импортировано из модуля «Darwin.POSIX.netdb», прежде чем понадобится – Hedam

+4

@RoboForm: вам нужно добавить некоторые файлы include. Если вы наберете «man getaddrinfo» в командной строке, вы увидите, какие файлы требуются. –

Смежные вопросы