Image::Identiconを参考にした。
use Digest::SHA qw(sha1);
my $ip = "172.16.84.33";
my $num = join '', split /\./, $ip;
my $code = unpack("N",sha1($num));
my $blue = (($code >> 6) & 0x0ff);
my $green = (($code >> 15) & 0x0ff);
my $red = (($code >> 24) & 0x0ff);
print $blue,",",$green,",",$red;
saltをまぶしたほうがよいのかな。