How to get IP from hostname on iOS

cocoa-touch, ios, objective-c

Solution

The following code works with both IPv4 and IPv6. It uses `getaddrinfo()` to retrieve a list of IP addresses for a host, and `getnameinfo()` to convert each IP address into a string. (Error checking omitted for brevity.)

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);

Problem

How do I get the IP from a given hostname on iOS? I've tried Google but found nothing.

Original source

Related problems