home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <memory.h>
- #include <devices.h>
- #include <files.h>
- #include <errors.h>
-
- #include <sys/types.h>
- #include <sys/socket.h> /* for AF_INET */
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
-
- extern int h_errno;
-
- char hostname[256];
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int i;
-
- if (argc < 2)
- {
- gethostname(hostname,256);
- get_host();
- exit(0);
- }
- for (i=1; i<argc; i++)
- {
- strcpy(hostname,argv[i]);
- get_host();
- }
- }
-
- get_host()
- {
- struct hostent *hp;
- unsigned long ipaddr;
- long **addrP;
-
- hp = gethostbyname(hostname);
- if (hp == NULL)
- {
- if (h_errno != HOST_NOT_FOUND)
- {
- herror("gethostbyname");
- return(-1);;
- }
- ipaddr = inet_addr(hostname);
- if (ipaddr == -1)
- {
- dprintf("host '%s' not found\n",hostname);
- return(-1);;
- }
- hp = gethostbyaddr(&ipaddr,4,AF_INET);
- if (hp == NULL)
- {
- herror("gethostbyaddr");
- return(-1);;
- }
- strncpy(hostname,hp->h_name,256);
- hostname[255] = 0;
- hp = gethostbyname(hostname);
- if (hp == NULL)
- {
- herror("gethostbyname");
- return(-1);;
- }
- }
-
- dprintf("%s\n",hp->h_name);
- for (addrP=(long **)hp->h_addr_list; *addrP; addrP++)
- {
- dprintf(" %s\n",inet_ntoa(**addrP));
- }
- }
-
-