home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / plum2_33_1.lzh / support / clientname < prev    next >
Text File  |  1999-03-24  |  1KB  |  60 lines

  1. #!/bin/perl -w
  2. # $Id: clientname,v 2.10 1999/01/14 17:26:55 hasegawa Exp $
  3. # copyright (c)1997-1999 Yoshinori Hasegawa <hasegawa@madoka.org>
  4.  
  5. if ($] < 5) {
  6.   foreach $inc (@INC) {
  7.     if (-r "$inc/sys/socket.ph") {
  8.       eval 'require "sys/socket.ph"';
  9.       $SOCKET = "$inc/sys/socket.ph" unless $@;
  10.       last;
  11.     }
  12.     if (-r "$inc/socket.ph") {
  13.       eval 'require "socket.ph"';
  14.       $SOCKET = "$inc/socket.ph" unless $@;
  15.       last;
  16.     }
  17.   }
  18. } else {
  19.   eval 'use Socket';
  20.   $SOCKET = 'Socket.pm' unless $@;
  21. }
  22.  
  23. $AF_INET = eval '&AF_INET' || 2;
  24.  
  25. &main(@ARGV);
  26.  
  27. sub main {
  28.   local(@args) = @_;
  29.   local($host, $addr, @addr, $name);
  30.   if (@args < 1) {
  31.     &usage;
  32.     exit(1);
  33.   }
  34.   ($host) = @args;
  35.   if ($host =~ /^\d+$/) {
  36.     $addr = pack('N', $host);
  37.   } elsif ($host =~ /^[\d\.]+$/) {
  38.     @addr = split(/\./, $host);
  39.     $addr = pack('C4', @addr, 0, 0, 0);
  40.   } else {
  41.     $addr = (gethostbyname($host))[4] || "\0\0\0\0";
  42.   }
  43.   if ($addr && $addr ne "\0\0\0\0") {
  44.     $name = (gethostbyaddr($addr, $AF_INET))[0];
  45.     if ($name) {
  46.       print $name, "\n";
  47.     } else {
  48.       print "*** unknown ***\n";
  49.     }
  50.     print join('.', unpack('C4', $addr)), "\n";
  51.     print unpack('N', $addr), "\n";
  52.   } else {
  53.     print "hostname lookup failed for $host\n";
  54.   }
  55. }
  56.  
  57. sub usage {
  58.   print "usage: perl clientname {<hostname>|<ip-address>}\n";
  59. }
  60.