09/01/01 13:09:08
>>351
ってかちゃんと動作しきれてない気が・・・
356:nobodyさん
09/01/01 13:31:33 z0xGpUSQ
>>351
# チェックお願いしますリスト。増やしたり減らしたり適当に
my @DNSBL_list = qw|http.dnsbl.sorbs.net niku.2ch.net bbx.2ch.net all.rbl.jp zen.spamhaus.org b.barracudacentral.org|;
my $RADDR = $ENV{'REMOTE_ADDR'};
foreach my $DNSBL_host (@DNSBL_list){
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$DNSBL_host";
my $result = join('.', unpack('C*', gethostbyname($query_addr)));
if ($result =~ /^127\.0\.0\./){
# スパム判定に引っかかった時の処理 ※適当に変更
# 例
printf qq|%s =>%s listed<br>\n|, $DNSBL_host, $result =~ /^127\.0\.0\./ ? '' : ' yes';
} else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
# 例
printf qq|%s =>%s listed<br>\n|, $DNSBL_host, $result =~ /^127\.0\.0\./ ? '' : ' no';
}
}
これで動いたけどスパム判定に引っかかったときの処理が表示されない・・・
357:nobodyさん
09/01/01 17:19:44
>>351をベースに>>356の修正ポイントを反映+α。
my $IP = $ENV{HTTP_REMOTE_ADDR};
my @DNSBL_list = qw|niku.2ch.net http.dnsbl.sorbs.net bbx.2ch.net all.rbl.jp zen.spamhaus.org b.barracudacentral.org|;
for my $DNSBL_host (@DNSBL_list){
my $host = join ".", reverse (split /\Q.\E/, $IP) , $DNSBL_host;
my $result = join ".", unpack 'C*', gethostbyname $host;
if ($result =~ /^127\./){
# スパム判定に引っかかった時の処理 ※適当に変更
printf qq|%s =>yes listed %s\n|, $IP, $DNSBL_host;
}
else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
printf qq|%s =>no listed %s\n|, $IP, $DNSBL_host;
}
}
% env HTTP_REMOTE_ADDR=125.208.217.212 perl hoge.pl
125.208.217.212 =>no listed niku.2ch.net
125.208.217.212 =>no listed http.dnsbl.sorbs.net
125.208.217.212 =>no listed bbx.2ch.net
125.208.217.212 =>no listed all.rbl.jp
125.208.217.212 =>yes listed zen.spamhaus.org
125.208.217.212 =>yes listed b.barracudacentral.org
358:nobodyさん
09/01/01 17:25:47 z0xGpUSQ
>>356だけどコレで動いたww
my @DNSBL_list = ('http.dnsbl.sorbs.net','niku.2ch.net','bbx.2ch.net','all.rbl.jp','zen.spamhaus.org','b.barracudacentral.org');
my $RADDR = $ENV{'REMOTE_ADDR'};
foreach my $DNSBL_host (@DNSBL_list){
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.$DNSBL_host";
my $result = join('.', unpack('C*', gethostbyname($query_addr)));
if ($result =~ /^127\.0\.0\./){
# スパム判定に引っかかった時の処理 ※適当に変更
# 例
printf "%s =>%s listed<br>\n", $DNSBL_host, $result =~ /^127\.0\.0\.$/ ? '' : ' yes';
} else {
# スパム判定に引っかからなかった時の処理 ※適当に変更
# 例
printf "%s =>%s listed<br>\n", $DNSBL_host, $result =~ /^127\.0\.0\.$/ ? '' : ' no';
}
}
359:nobodyさん
09/01/04 15:44:18
変なこと聞くけど、なんで問い合わせるときIPアドレスひっくり返すの?
360:nobodyさん
09/01/05 10:01:03
業界っぽく見えるから
361:nobodyさん
09/01/09 18:24:53 Xsqwk5mc
活気が出るのを願ってあげ
362:nobodyさん
09/01/11 20:47:12
>>359
エンディアンの違いじゃね?
363:nobodyさん
09/01/26 13:46:52 g1I0uFd6
DSBLを使いたいのですがこれはユーザー登録しないと使えないのでしょうか?
364:nobodyさん
09/01/26 15:18:05
>>363
URLリンク(dsbl.org) なら死亡したっぽい
365: ◆.CzKQna1OU
09/03/08 21:32:29
保守
366:nobodyさん
09/03/28 16:36:12 xAqQTRt0
DSBL死んだのか…どうしよ。
367:nobodyさん
09/03/29 00:37:32 Vi6NYFfG
>>366
BBQとDNSBLで事足りるでしょ
368:nobodyさん
09/04/15 22:54:53 /QsL8z0W
################################################################
#---------------BBQシステム (公開Proxy排除機能)----------------#
################################################################
sub checkProxyList {
my $RADDR = $ENV{'REMOTE_ADDR'};
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.niku.2ch.net";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2') { &error("Proxy感知!"); }
}
これでも作動するから平気だよね?
369:nobodyさん
09/04/16 04:50:16 z2gtEA17
>>368
作動するなら問題ないでしょ。
過去レス見ればさらによし。
370:nobodyさん
09/07/31 11:32:30 RnBdDoGz
そろそろage
371:nobodyさん
10/01/04 16:59:00 t1azOvnf
age
372:nobodyさん
10/03/03 02:34:43 G7dFuFeQ
今回bbq組み込んでる人はスクリプト遅くなった?
373:nobodyさん
10/03/03 03:48:00
ちゃんとタイムアウト使ってれば大して重くならないんじゃないかな
374:nobodyさん
10/03/04 04:06:16
>>373
その辺kwsk
375:nobodyさん
10/03/05 01:59:10
>>51のリンク先参考にすればいいよ。