home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.unix.programmer
- Path: sparky!uunet!gatech!concert!mercury!muquit
- From: muquit@mercury.ncat.edu
- Subject: Re: Get hostname from IP address
- Message-ID: <1992Dec14.042053.7413@mercury.ncat.edu>
- Organization: North Carolina A&T State University
- Date: Mon, 14 Dec 1992 04:20:53 GMT
- Lines: 71
-
- And this one also can get IP address from hostname.
- I just took some code out from 'ncftp'. The first part was
- posted by someone else few days back.
- So, credit goes to the authors.
-
- -------------------CUT--------------
- /* Get host name from IP address
- * Get IP address from host name
- */
-
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netdb.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- char *add;
- unsigned long addr_bin;
- unsigned long horder;
- struct hostent *host;
- char *name;
- int j;
-
- if (argc<2) {
- fprintf(stderr,"Usage:\n%s Site Name\n%s IP Number\n",argv[0],argv[0]);
- exit();
- }
- add= argv[1];
- if ( (sscanf(argv[1],"%d.%d.%d.%d",&j,&j,&j,&j)) == 4){
- fprintf(stderr,"\nTrying to get Host Name...\n\n");
- if ((inet_addr (argv[1])) == 0xffffffff) {
- (void) fprintf(stderr, "This IP adress MUST NOT be valid.. :-)\n\n");
- exit(1);
- }
- addr_bin= inet_addr(add);
- host= gethostbyaddr((char*) &addr_bin, sizeof(addr_bin),AF_INET);
- if (host == NULL) {
- if (h_errno == HOST_NOT_FOUND) {
- (void) printf("Sorry! Can't find any Host Name with IP Address \"%s\"\n\n", argv[1]);
- exit(1);
- }
- }
- name=host->h_name;
- printf("Host Name is : %s\nIP address : %s\n\n",name,add);
- exit(0);
- }
- /***************/
- fprintf(stderr,"\nTrying to get IP Address...\n\n");
- host=gethostbyname(argv[1]);
- if (host == NULL) {
- if (h_errno == HOST_NOT_FOUND) {
- (void) printf("Sorry! Can't find any Host by the name \"%s\"\n\n", argv[1]);
- exit(1);
- }
- }
- if(*host->h_addr_list){
- horder=ntohl(*(unsigned long *) *(char **) host->h_addr_list);
- printf("IP Address is : %lu.%lu.%lu.%lu\n",
- (horder >> 24),
- (horder >> 16) & 0xff,
- (horder >> 8 ) & 0xff,
- horder & 0xff);
- fprintf(stderr,"Host name is : %s\n\n",add);
- }
- }
-
-