home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 2.x / plum2_26_1.lzh / support / clientname < prev    next >
Text File  |  1998-07-31  |  1KB  |  58 lines

  1. #!/bin/perl -w
  2. # $Id: clientname,v 2.6 1998/02/20 19:45:26 hasegawa Exp $
  3. # copyright (c)1997-1998 pupu_j <hasegawa@agusa.nuie.nagoya-u.ac.jp>
  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, $name);
  30.   if (@args < 1) {
  31.     &usage;
  32.     exit(1);
  33.   }
  34.   ($host) = @args;
  35.   if ($host =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
  36.     $addr = pack('C4', $1, $2, $3, $4);
  37.   } elsif ($host =~ /^\d+$/) {
  38.     $addr = pack('N', $host);
  39.   } else {
  40.     $addr = (gethostbyname($host))[4];
  41.   }
  42.   if ($addr) {
  43.     $name = (gethostbyaddr($addr, $AF_INET))[0];
  44.     if ($name) {
  45.       print $name, "\n";
  46.       print join('.', unpack('C4', $addr)), "\n";
  47.     } else {
  48.       print "no hostname for ", join('.', unpack('C4', $addr)), "\n";
  49.     }
  50.   } else {
  51.     print "hostname lookup failed for $host\n";
  52.   }
  53. }
  54.  
  55. sub usage {
  56.   print "usage: perl clientname {<hostname>|<ip-address>}\n";
  57. }
  58.