#!/usr/bin/perl
# generate - Written By Narrow (nss@privacyx.com)

use Socket;

system("clear");
    print "\t\t\tNSS - Subdomain Generator v0.3\n";
    print "\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n";

if(!$ARGV[0]) {	
    print "Usage: $0 <host> <log file>\n\n";
    print "Example: $0 nasa.gov nasa.gov.lst\n\n";
    exit;
}
if(!$ARGV[1]) { $logfile = "hostfile.new"; } else { $logfile = $ARGV[1]; }

#$iaddr = inet_aton($ARGV[0]) || die "Can't resolve host $ARGV[0]\n";
#$paddr = sockaddr_in(53, $iaddr);
#$proto = getprotobyname('tcp');
#socket(sock, PF_INET, SOCK_STREAM, $proto) || die "Problems opening socket!\n";
#connect(sock, $paddr) || die "Can't connect to $ARGV[0]\:53!\n";
#close sock;

open(HOST, "/usr/bin/host -l $ARGV[0] >.hosts.tmp |") || die "Cannot open /usr/bin/host !";
print "Generating file ...";
while(<HOST>) { print "."; }
close HOST;
print "\nWriting ... ";

open(LOG1, "<.hosts.tmp") || die "open: $! (.hosts.tmp)\n";
@all_log1=<LOG1>;
close LOG1;

open(LOG2, ">$logfile") || die "open: $! ($logfile)\n";
print LOG2 "$ARGV[0]\n";

foreach $one_host (@all_log1) {

($host,$blah1,$blah2,$ns) = split(/ /, $one_host); chomp $ns;
if($ARGV[0] ne $host) { print LOG2 "$host\n"; }

}
close LOG2;

print "Done!\n";
system("rm -f .hosts.tmp");
exit;