#! /usr/bin/perl
# return the canonical name for a host.
if ( $ARGV[0] eq "-n" ) {
    $numeric = 1;
    $host = $ARGV[1];
} else {
    $numeric = 0;
    $host = $ARGV[0];
}
if ( $host =~ /^([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)$/ ) {
    $addr=pack("C4",$1,$2,$3,$4);
    ($name,$aliases,$addrtype,$length,@addrs) = gethostbyaddr($addr,2);
} else {
    ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($host);
    ($name,$aliases,$addrtype,$length,@addrs) = gethostbyaddr($addrs[0],2);
}
if ( $? ) {
    exit 1;
} else {
    if ( $numeric == 1 ) {
	($a,$b,$c,$d) = unpack("C4",$addrs[0]);
	print $a,".",$b,".",$c,".",$d,"\n";
    } else {
	print $name,"\n";
    }
}
