#!/usr/local/bin/perl -w-- # -*- perl -*-
#
# $Id: dump_hosts,v 1.1 1995/08/13 14:45:20 qjb Exp $
# $Source: /home/qjb/scripts/RCS/dump_hosts,v $
# $Author: qjb $
#
# Author: E. Jay Berkenbilt (ejb@ERA.COM)
#

# This code, from the perl manual page, forces this to be run by perl from 
# perl, sh, or csh.  It must be first.
eval '(exit $?0)' && eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
& eval 'exec /usr/local/bin/perl -S $0 $argv:q'
    if 0;

$whoami = ($0 =~ m,([^/]*)$,) ? $1 : $0;

$| = 1;

@addrs = ();
for (@ARGV)
{
    if (! m/^([0-9]+)\.([0-9]+)\.([0-9]+)$/)
    {
	&usage();
    }
    else
    {
	push(@addrs, [$1, $2, $3]);
    }
    for (@addrs)
    {
	for ($i = 0; $i < 256; $i++)
	{
	    &addr_to_host(@$_, $i);
	}
    }
}


sub addr_to_host
{
    local($a, $b, $c, $d) = @_;
    local($addr) = pack('C4', $a, $b, $c, $d);
    local($inet) = 2;		# sorry
    @result = gethostbyaddr($addr, $inet);
    if (@result)
    {
	print "$a.$b.$c.$d\t$result[0]\n";
    }
}

sub usage
{
    print STDERR "Usage: $whoami a.b.c [ a.b.c ... ]\n";
    print STDERR "  Reverse resolve all IP's in net a.b.c\n";
    exit 1;
}
