zen.spamhaus.org 一般的な使い方 バッチ付き(PHP・bash)

snow
2022-08-26
snow
2022-08-26

説明:

クラウドサービスのIPを利用しています。
ために、IPをブラックリストの登録されてしまったことがあります。
それを検知するため、
無料の zen.spamhaus.org 使い方を紹介させていただきます。
spamhaus.org 管理している Blacklist 限定です。

使い方、

IP は 1.2.3.4 の場合
```
dig +short TXT 4.3.2.1.zen.spamhaus.org
```
を実行して、nullを返してきた場合は IP → 正常 です。

```
https://www.spamhaus.org/query/ip/1.2.3.4
```
を返してきた場合は IP → 異常 です。

PHPバッチ:

```
class SpamhausOrg {
public function check($ips) {
$ret = '';
foreach ($ips as $ip) {
$a = explode('.', $ip);
$rip = "$a[3].$a[2].$a[1].$a[0]";
$ret .= `dig +short TXT ${rip}.zen.spamhaus.org`;
}
return $ret;
}
}
# --- $ips は IP リストです。(Array)
$ret = (new SpamhausOrg($ips))->check();

if (strlen($ret) > 0) {
# --- 通知
}
```

bash バッチ:

```
while read line
do

if [ -z "$line" ]; then
continue
fi

if [ ${line:0:1} != '#' ]; then
A=(${line//./ })
rline="${A[3]}.${A[2]}.${A[1]}.${A[0]}"
ret=`dig +short TXT $rline.zen.spamhaus.org`
if [ "$ret" ]; then
text=$text$ret
fi
fi
# ip_list.file は IP リストのファイルです。
done < ip_list.file

if [ ${#text}>0 ]; then
# --- 通知
fi
```