#!/usr/bin/perl
use CGI qw/:standard/;
use Socket;
my $domain="example.com";
my ($host, $user);
my @nums = (['m', 'l'], # 0
['q', 't'], # 1
['x', 'd'], # 2
['z', 'k'], # 3
['s', 'b'], # 4
['c', 'h'], # 5
['r', 'n'], # 6
['v', 'p'], # 7
['g', 'j'], # 8
['w', 'f'], # 9
['a', 'e'], # 10
['i', 'o'], # 11
['u', '1'], # 12
['2', '4'], # 13
['5', '6'], # 14
['9', '7']); # 15
$host = remote_host();
if ($host !~ /^(\d{1,3}\.){3}\d{1,3}$/) {
$host = inet_ntoa(scalar gethostbyname($host));
}
$user = "";
foreach $octet (split /\./, $host) {
$high = $octet>>4;
$low = $octet & 0xF;
$user .= $nums[$high][int rand 2];
$user .= $nums[$low][int rand 2];
}
$user = "webmaster" if (!$user);
print header;
print start_html, "E-mail me $user\@$domain", end_html;
####
#!/usr/bin/perl
#use CGI qw/:standard/;
use Socket;
my ($addr);
my @nums = (['m', 'l'], # 0
['q', 't'], # 1
['x', 'd'], # 2
['z', 'k'], # 3
['s', 'b'], # 4
['c', 'h'], # 5
['r', 'n'], # 6
['v', 'p'], # 7
['g', 'j'], # 8
['w', 'f'], # 9
['a', 'e'], # 10
['i', 'o'], # 11
['u', '1'], # 12
['2', '4'], # 13
['5', '6'], # 14
['9', '7']); # 15
my %backwards;
for ($i = 0; $i < 16; $i++) {
$backwards{$nums[$i]->[0]} = $i;
$backwards{$nums[$i]->[1]} = $i;
}
$addr = shift || die;
$addr =~ s/\@.*//;
if (length $addr != 8) {
print "Bad length\n";
exit;
}
@chars = split //, $addr;
for ($i = 0; $i < 8; $i += 2) {
push @octets, $backwards{$chars[$i]}<<4 | $backwards{$chars[$i+1]};
}
$ip = join ".", @octets;
print "IP is $ip\n";
$host = scalar gethostbyaddr(scalar inet_aton($ip), AF_INET) || "unknown";
print "Host is $host\n";