php-tool-box:services-spam-champuru
スパムちゃんぷるーDNSBLをPHPから手軽に使う - Services_SpamChampuru
更新履歴とコメントはServices_SpamChampuru Archive - ゼロと無限の間のログでどうぞ。
livedoorによるDNS Black List方式によるSPAMフィルターのAPI、スパムちゃんぷるーDNSBL。
これを使うためのPerlモジュールは公開されているのに、PHP版が無い!ので作った。
けどすぐに「スパムちゃんぷるーDNSBL」をPHPから利用するServices_SpamChampuru_DNSBLが公開されていた。が、せっかくだから公開。
最初はPEAR::Net_DNSBLを使おうとしたけど、どうもうまくいかない。ソースを見たらややこしいことをしてそうなので面倒になってやめた。
ここは1つシンプルにしてみよう。名前もServices_SpamSimpleuにしようかと思ったけど分かりづらいのでやめた。
材料
- Services_SpamChampuru(下記ソースコードをコピーしてPHPファイルとして保存する)
- SPAM少々(動作確認用に)
使い方の例
require_once('Services_SpamChampuru.php'); //アクセス元のIPアドレスをチェックする場合はパラメータ無しでOK var_dump(Services_SpamChampuru::isSpam()); //=> false //IPアドレスを指定してチェックする場合 var_dump(Services_SpamChampuru::isSpam('192.168.0.1')); //=> false //常にSPAMと判定される、テスト用のIPアドレス var_dump(Services_SpamChampuru::isSpam('192.0.2.1')); //=> true
ライセンス
例によってMITライセンスで。
ソースコード
シンプルでしょ?
class Services_SpamChampuru { const BASE_DOMAIN = '.dnsbl.spam-champuru.livedoor.com'; //SPAMの場合はDNSからこのIPアドレスが返される const RESULT_SPAM_IP = '127.0.0.2'; /** * スパムかどうか判定する * @param string $ip 判定したいIPアドレス(v4) * @return boolean 判定結果 */ public static function isSpam($ip = null) { if (!$ip) { $ip = $_SERVER['REMOTE_ADDR']; } $name = implode('.', array_reverse(explode('.', $ip))) . self::BASE_DOMAIN; return (getHostByName($name) == self::RESULT_SPAM_IP); } }
php-tool-box/services-spam-champuru.txt · 最終更新: 2008/10/30 22:29 by dgbadmin