といってもこれ、過去に自分が書いたものの修正版です(そのときは公開はしていません)。
Download Harmful.pm
このModuleは、デフォルトでモジュールファイルの__DATA__から下をロードします。
モジュールをuseした際にファイル名を指定することでロード元を変更できます。
use Harmful 'Harmful.txt'; # Harmful.txt をロード
ロードするデータは、パックされたIPアドレスを16進数に変換したもの(通常"Harmful::sign"を使う)を改行
次に各サブルーチンの解説です。"Harmful::sign"は渡されたサーバー名(リスト)のIPアドレスを16進数に変換したものを返します。
use Harmful 'Harmful.txt'; print join "\n",Harmful::sign 'www.google.co.jp','www.yahoo.co.jp'; print scalar Harmful::sign 'www.google.co.jp','www.yahoo.co.jp'; # スカラー(スケーラー)で評価すると第一引数のみを変換したものを返す
"Harmful::judge"は渡されたサーバー名(リスト)をsign値に変換し、ロードしたIPアドレスのリストに含まれているか確認し、IPアドレスがロードデータに含まれるサーバー名を返します。
use Harmful 'Harmful.txt'; print join "\n",Harmful::judge 'www.google.co.jp','www.yahoo.co.jp'; print scalar Harmful::judge 'www.google.co.jp','www.yahoo.co.jp'; # スカラー(スケーラー)で評価すると第一引数のみをチェックする
掲示板等の投稿からサーバー名(ホスト)を輸出してジャッジするには以下のようにします。
use Harmful 'Harmful.txt'; Harmful::judge $msg =~ m{://([\w\.\-]+)}g;
前回説明した通り、Harmfulモジュールの各サブルーチンで使われているgethostbyname関数は遅いので入力できるURIは5つ程に制限して下さい。
"*Harmful::DATA"ファイルハンドルはVersion 1.2.2以降ロード終了時にクローズされます。
これで解説を終わります。
ついでに、私が収集した宣伝されるサーバーのIPアドレスを多かった順に21種類公開しておきます。
Download Harmful IP addres List
スパマーによって宣伝されるサーバー名はエイリアスがかなり多いので、IPアドレスは今のところ100種類程度で十分すぎます。
0 件のコメント:
コメントを投稿