2008年10月29日
「スパムちゃんぷるーDNSBL」をPHPから利用するServices_SpamChampuru_DNSBL
こんにちは、いつもブログネタなしで泣いてる亀本です。
昨日、livedoorが各所で利用しているというスパムフィルタ「スパムちゃんぷるー」のDNSBL(ブラックリスト)を利用できるサービス「スパム ちゃんぷるーDNSBL」が公開されました。
今回は、これをPHPから利用するクラスを作成してみました。
作成といっても、CPANにあるWebService::Livedoor::SpamChampuru::DNSBLのPHP移植です。
またか!と思ったあなたは、僕の記事を見すぎです。
またCodeReposに入れるかなー、と思っていましたが、細かすぎてそこまでのものでもない気がしたので、とりあえず以下に貼り付けておきます。
もうちょっと改変したり、スパムちゃんぷるー関連のその他API等が増えてきたら、そのうちまとめて入れようと思います。
利用に関してですが、このクラスは外部ライブラリとしてPEARのNet_DNSを利用、さらにそのNet_DNSがPHPのmhashモジュールを利用しています。
そのため、このクラスを使用する際には、まずPHPを再コンパイルするなどしてmhashモジュールを有効にした後、
% sudo pear install Net_DNS
としてNet_DNSをインストールして置く必要があります。。
<?php
require_once 'Net/DNS.php';
/**
* Services_SpamChampuru_DNSBL
*
* @author Daichi Kamemoto(a.k.a yudoufu) <daichi@asial.co.jp>
* @version 0.0.1
*/
class Services_SpamChampuru_DNSBL
{
private static $domain = 'dnsbl.spam-champuru.livedoor.com';
private static $spam_result = '127.0.0.2';
private $timeout = 0.1;
private $nameservers = array();
/**
* constructor
*
* @param integer $timeout
* @param array $nameservers
*/
public function __construct($timeout = null, $nameservers = null)
{
if (!is_null($timeout))
{
$this->timeout = $timeout;
}
if (!is_null($nameservers))
{
if (!is_array($nameservers))
{
$nameservers = array($nameservers);
}
$this->nameservers = $nameservers;