local($check_referer) = 0; my $refhost = $ENV{'HTTP_REFERER'}; $refhost =~ s/^.*\/\///g; $refhost =~ s/\/.*$//g; my $refip = `dnsip $refhost`; chomp $refip; $refip =~ s/\s+$//g; print STDERR "[" . localtime() . "] [formmail referer check] \$ENV{'REMOTE_ADDR'} = $ENV{'REMOTE_ADDR'} [$ENV{'REMOTE_HOST'}] \$ENV{'HTTP_REFERER'} = $ENV{'HTTP_REFERER'} \$refhost = $refhost \$refip = $refip.\n"; foreach $referer (@referers) { ($refip eq $referer) and $check_referer = 1; } # If the HTTP_REFERER was invalid, send back an error. # if ($check_referer != 1) { &error('bad_referer') }