#!/usr/bin/perl # IP address resolver for Boa # If you want an "in place" change to the log file, # change the first line to #!/usr/local/bin/perl -i.bak # Otherwise, send the output of this program wherever you want: # resolver.pl access_log >access_log_resolved $AF_INET = 2; while(<>) { next unless (($ip, $rest) = /([\d\.]+) (.*)/o); if(!$hosts{$ip}) { $packed_ip = pack('C4', split(/\./, $ip)); $host = (gethostbyaddr($packed_ip, $AF_INET))[0]; $hosts{$ip} = ($host ? $host : $ip); } print "$hosts{$ip} $rest\n"; }