home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume6 / hname < prev    next >
Internet Message Format  |  1989-02-03  |  2KB

  1. Path: xanth!ukma!rutgers!ucsd!ucbvax!decwrl!wyse!uunet!allbery
  2. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  3. Newsgroups: comp.sources.misc
  4. Subject: v06i012: reverse hostname lookup program
  5. Message-ID: <47277@uunet.UU.NET>
  6. Date: 24 Jan 89 03:04:46 GMT
  7. Sender: allbery@uunet.UU.NET
  8. Reply-To: koreth@ssyx.UCSC.EDU (Steven Grimm)
  9. Lines: 72
  10. Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  11.  
  12. Posting-number: Volume 6, Issue 12
  13. Submitted-by: koreth@ssyx.UCSC.EDU (Steven Grimm)
  14. Archive-name: hname
  15.  
  16. This is primarily useful for sites running the Berkeley Internet Name Daemon
  17. or some other form of Internet name server; it looks up a host name given
  18. the host's internet address.  It looks up each of the arguments, or prompts
  19. for addresses if no arguments are given.  Example:
  20.  
  21. % hname 128.114.133.1
  22. 128.114.133.1 = SSYX.UCSC.EDU
  23.  
  24. This program isn't robust or complex or anything, but it works.  Note that
  25. your gethostbyaddr() routine must use the nameserver for this to work.
  26. ---
  27. These are my opinions, which you can probably ignore if you want to.
  28. Steven Grimm        Moderator, comp.{sources,binaries}.atari.st
  29. koreth@ssyx.ucsc.edu    uunet!ucbvax!ucscc!ssyx!koreth
  30.  
  31. #-------------- cut here -------------
  32. #!/bin/sh
  33. # shar:    Shell Archiver  (v1.22)
  34. #
  35. #    Run the following text with /bin/sh to create:
  36. #      hname.c
  37. #
  38. sed 's/^X//' << 'SHAR_EOF' > hname.c &&
  39. X#include <ctype.h>
  40. X#include <stdio.h>
  41. X#include <sys/types.h>
  42. X#include <netdb.h>
  43. X#include <sys/socket.h>
  44. X
  45. Xmain(argc, argv)
  46. Xchar **argv;
  47. X{
  48. X    int i;
  49. X    if (argc == 1)
  50. X    {
  51. X        char string[80];
  52. X
  53. X        while (! feof(stdin))
  54. X        {
  55. X            printf("> ");
  56. X            fflush(stdout);
  57. X            lookup(gets(string));
  58. X        }
  59. X    }
  60. X    else
  61. X        for (i=1; i<argc; i++)
  62. X            lookup(argv[i]);
  63. X}
  64. X
  65. Xlookup(string)
  66. Xchar *string;
  67. X{
  68. X    struct hostent *hp, *gethostbyaddr();
  69. X    long        addr, inet_addr();
  70. X
  71. X    if (! string || ! isdigit(string[0]))
  72. X        return;
  73. X    addr = inet_addr(string);
  74. X    hp = gethostbyaddr(&addr, sizeof(addr), AF_INET);
  75. X    if (hp == (struct hostent *)NULL)
  76. X        printf("%s not found\n", string);
  77. X    else
  78. X        printf("%s = %s\n", string, hp->h_name);
  79. X}
  80. X
  81. SHAR_EOF
  82. chmod 0600 hname.c || echo "restore of hname.c fails"
  83. exit 0
  84.