4 #include <sys/socket.h>
\r
7 #ifndef MAXHOSTNAMELEN
\r
8 #define MAXHOSTNAMELEN 64
\r
11 int main(int argc, char **argv)
\r
13 struct addrinfo *ai, hints;
\r
15 char localname[MAXHOSTNAMELEN];
\r
16 char hnamebuf[NI_MAXHOST];
\r
18 if(gethostname(localname, MAXHOSTNAMELEN)) {
\r
21 printf("gethostname() returns \"%s\"\n", localname);
\r
26 hostname = localname;
\r
28 printf("Using \"%s\" as service host name\n", hostname);
\r
30 memset(&hints, 0, sizeof(hints));
\r
31 hints.ai_family = AF_INET;
\r
32 if(getaddrinfo(hostname, NULL, &hints, &ai)) {
\r
33 printf("getaddrinfo() failed\n");
\r
37 if(ai->ai_canonname) {
\r
38 hostname = strdup(ai->ai_canonname);
\r
39 printf("Canonical hostname from getaddrinfo() is \"%s\"\n", hostname);
\r
42 if(getnameinfo(ai->ai_addr, ai->ai_addrlen, hnamebuf, sizeof(hnamebuf),
\r
43 NULL, 0, NI_NAMEREQD)) {
\r
44 printf("getnameinfo() failed\n");
\r
48 printf("Hostname from getnameinfo() is \"%s\"\n", hnamebuf);
\r