#!/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";