書き込みしてくるクライアントのIPをチェックして、スパマーかどうかを判断するものということだ。
http://spam-champuru.livedoor.com/dnsbl/
しかし提供されているのは、サーバーとPerlでの実装方法だけなんですな。
うちのサイトはPHPベースだし、最近本業でいじっているWebサイトもほとんどPHPベース。
Linux系はさっぱりなのだけどdigというコマンドがこのサーバーにアクセスできるというから、それを手がかりにちょっと調べてみたところ gethostbynameと同じと判明。
(当たり前だろうと言われそうですが……)
それさえ判明すればやることは早いぞっつことで、ためしにこういうのを書いてみた。
<?php
//$CHECK_IP = "192.0.2.1"; // スパム判定されるIP
$CHECK_IP = "207.46.197.32"; // されないIP(microsoft.com)
if(preg_match("/([\d]+).([\d]+).([\d]+).([\d]+)/",$CHECK_IP,$ip)){
$b = $ip[4] . ".". $ip[3] . ".". $ip[2] . ".". $ip[1];
$c[] = gethostbyname($b . ".dnsbl.spam-champuru.livedoor.com");
if($c[0] == "127.0.0.2"){
echo $CHECK_IP . " ==> すぱむ";
}else{
echo $CHECK_IP . " ==> もっけー";
}
}
?>
//$CHECK_IP = "192.0.2.1"; // スパム判定されるIP
$CHECK_IP = "207.46.197.32"; // されないIP(microsoft.com)
if(preg_match("/([\d]+).([\d]+).([\d]+).([\d]+)/",$CHECK_IP,$ip)){
$b = $ip[4] . ".". $ip[3] . ".". $ip[2] . ".". $ip[1];
$c[] = gethostbyname($b . ".dnsbl.spam-champuru.livedoor.com");
if($c[0] == "127.0.0.2"){
echo $CHECK_IP . " ==> すぱむ";
}else{
echo $CHECK_IP . " ==> もっけー";
}
}
?>
なるほどね。これは使えそうだ。
これを入れておけば完璧というわけじゃないが、なるべく多くのSPAM書き込みを検出するには使えるかもしれない。