+++ /dev/null
-#include <stdio.h>\r
-#include <unistd.h>\r
-#include <string.h>\r
-#include <sys/socket.h>\r
-#include <netdb.h>\r
-\r
-#ifndef MAXHOSTNAMELEN\r
-#define MAXHOSTNAMELEN 64\r
-#endif\r
-\r
-int main(int argc, char **argv)\r
-{\r
- struct addrinfo *ai, hints;\r
- char *hostname;\r
- char localname[MAXHOSTNAMELEN];\r
- char hnamebuf[NI_MAXHOST];\r
-\r
- if(gethostname(localname, MAXHOSTNAMELEN)) {\r
- return 1;\r
- }\r
- printf("gethostname() returns \"%s\"\n", localname);\r
-\r
- if(argc == 2) {\r
- hostname = argv[1];\r
- } else {\r
- hostname = localname;\r
- }\r
- printf("Using \"%s\" as service host name\n", hostname);\r
-\r
- memset(&hints, 0, sizeof(hints));\r
- hints.ai_family = AF_INET;\r
- if(getaddrinfo(hostname, NULL, &hints, &ai)) {\r
- printf("getaddrinfo() failed\n");\r
- return 1;\r
- }\r
-\r
- if(ai->ai_canonname) {\r
- hostname = strdup(ai->ai_canonname);\r
- printf("Canonical hostname from getaddrinfo() is \"%s\"\n", hostname);\r
- }\r
- \r
- if(getnameinfo(ai->ai_addr, ai->ai_addrlen, hnamebuf, sizeof(hnamebuf),\r
- NULL, 0, NI_NAMEREQD)) {\r
- printf("getnameinfo() failed\n");\r
- return 1;\r
- }\r
-\r
- printf("Hostname from getnameinfo() is \"%s\"\n", hnamebuf);\r
-\r
- freeaddrinfo(ai);\r
- return 0;\r
-}\r