#! /usr/bin/perl # (c) 2008 Laurent FACQ - facq@u-bordeaux.fr # simple filter to resolv ipv4 addresses # Usage : # cat /etc/hosts | ip2name # ip2name /etc/hosts sub ip2name { my ($add,$name,$aliases,$addrtype,$length,@addrs); $add = pack('C4',split('\.',$_[0])); ($name,$aliases,$addrtype,$length,@addrs)= gethostbyaddr($add,2); if (!$name) { $name= $_[0]; } return $name; } while ($l=<>) { $l =~ s/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/ip2name($1)/eg; print $l; } ## todo : should have a better regex to dont match 555.555.555.555 for exemple !