#!/usr/bin/perl -w

# By Pl Baltzersen Feb, 2000

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (version 2) as
# published by the Free Software Foundation.  It is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License (GPL) for more details.

# Hostbyname takes a squidGuard domain or url list and does some half
# harted effort to expand it with the corresponding IP-addresses.
# Usage:
#   hostbyname < urls > urls.new
#   hostbyname < domains > domains.new

my $version = "0.0.1";

use strict;
use Socket;

my ($hostname, $url, $h, $i, $a);
my ($name,$aliases,$addrtype,$length,@addrs);

while(<>) {
  my %seen;
  chomp;
  $url = $_;
  $hostname = $_;
  $hostname =~ s/\057.*//;
  $url =~ s/^$hostname//;
  print "$hostname$url\n";
  next if($hostname =~ /^\d.\d.\d.\d$/);
  foreach $h ($hostname, "www.$hostname", "ftp.$hostname") {
    #print "-> $h\n";
    ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($h);
    #print "-> $name\n";
    foreach $i (@addrs) {
      $a = inet_ntoa($i);
      #print "-> $a\n";
      next if($seen{$a});
      $seen{$a} = 1;
      print "$a$url\n";
    }
  }
}
