2008-12-08 キャラメルコーヒーに塩
■[perl] あえてまた perl で。 
をあえて perl に移植。
もともと perl はあるんだろうけど、perl の練習中なんです。
use Socket; sub CheckSpamIP { my $check_ip = shift; # スパムIPアドレス my $spam_ip = "127.0.0.2"; # IPアドレスが不当な場合はスパムとみなす # (単純にXXX.XXX.XXX.XXXかどうかだけチェック) if ($check_ip !~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) { return 1; } # IPアドレス逆順並べ替え(AAA.BBB.CCC.DDD -> DDD.CCC.BBB.AAA) my $ip_rev = join(".", (reverse(split('\.', $check_ip)))); # 検索ドメイン生成 my $host = "$ip_rev.dnsbl.spam-champuru.livedoor.com"; # ドメイン正引き # 正引き失敗時はスパム元IPアドレス以外と判断 my $ip = 0; eval { my $name = inet_aton($host); if ($name) { $ip = inet_ntoa($name); } }; if ($@ or !$ip) { # print $@ , "\n"; return 0; } # 正引き後アドレス判定 if ($ip eq $spam_ip) { # スパム return 1; } else { # スパム以外 return 0; } }
use strict とかは省略。eval のあたり、適当すぎかなぁ。パッケージいれて try とか使うのは果たして一般的なのだろうか?
まぁ、飲めないことないけど・・・。
しかもちょっとブーム去り気味だし