GETADDRINFO()

these functions provide a protocol-independent manner of working w/ hostnames & addresses

    // 9. getaddrinfo() - Resolve a hostname to an IP address
    struct addrinfo hints, *res;
    memset(&hints, 0, sizeof(hints));
    hints.ai_family = AF_INET; // IPv4
    hints.ai_socktype = SOCK_STREAM;
    if (getaddrinfo("www.example.com", "80", &hints, &res) != 0) {
        perror("getaddrinfo");
    } else {
        printf("Resolved IP: %s\n", inet_ntoa(((struct sockaddr_in*)res->ai_addr)->sin_addr));
        freeaddrinfo(res);
    }

Last updated