
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

// int getaddrinfo(const char *node, const char *service,
//                 const struct addrinfo *hints,
//                 struct addrinfo **res);
// 
// void freeaddrinfo(struct addrinfo *res);


int main ()
{
	const char *host = "208.77.188.166";  // www.example.com
	const char *port = NULL;
	int socktype = SOCK_STREAM;
	int flags = AI_CANONNAME;

	struct addrinfo hints;
	struct addrinfo* res = NULL;
	int error;

	memset(&hints, 0, sizeof(hints));
	hints.ai_family = AF_UNSPEC;
	hints.ai_socktype = socktype;
	hints.ai_flags = flags;

	error = getaddrinfo(host, port, &hints, &res);

	fprintf(stderr, "sock_addrinfo: error=%d res->ai_canonname='%s'\n", error, (res && res->ai_canonname)? res->ai_canonname : "NULL");

	if (res)
		freeaddrinfo(res);

	return 0;
}

