MovableType3.171jaで動作確認済みです。
package BBQ;
;########################################################################
;### BBQ あらしお断りシステム
;### Programmed by Piroli YUKARINOMIYA
;### http://www.magicvox.net/home.php
use strict;
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)));
return $addr eq '127.0.0.2' ? 1 : 0;
}
1;
__END__
;########################################################################
* Original concepts & codes
http://www.otsune.com/diary/2005/10/02/3.html#200510023
http://bbq.uso800.net/
http://info.2ch.net/wiki/pukiwiki.php?BBQ</textarea>
<h4 class="section">Comments.pm の修正</h4>
コメントが投稿されたタイミングで、上のロジックを用いてプロクシ規制を行うためのコードを追加します。
以下を参照に <span class="filename">/cgi-bin/mt/lib/MT/App/Comments.pm</span> を修正します。
<p>
<textarea class="code" cols="80" rows="12">
sub post {
my $app = shift;
my $q = $app->{query};
return do_preview($app, $q, @_) if $app->request_method() ne 'POST';
;### PROXY規制 ここから追加
{
use BBQ;
return $app->handle_error (
'荒らし対策のため公開プロクシからの投稿を規制しています。'.
'規制対象プロクシか<a href="http://sv2ch.baila6.jp/chk_proxy.cgi">こちら</a>でチェックしてください。'
) if (BBQ'checkProxyList ()); #↑プロクシ規制に引っかかった場合のエラーメッセージ
}
;### PROXY規制 ここまで追加
sub ping {
my $app = shift;
my $q = $app->{query};
;### PROXY規制 ここから追加
{
use BBQ;
return $app->_response(Error =>
'荒らし対策のため公開プロクシからの投稿を規制しています。'.
'規制対象プロクシか<a href="http://sv2ch.baila6.jp/chk_proxy.cgi">こちら</a>でチェックしてください。'
) if (BBQ'checkProxyList ()); #'
}
;### PROXY規制 ここまで追加
寄せられたコメント (全 1 件中、最新 5 件まで表示しています)
同機能(ちゅーか更に高性能)な SpamLookup というプラグインがあるようです。
http://bradchoate.com/projects/spamlookup/
しかも MovableType 3.2 からはパッケージに標準で添付されていますから
素直にこっちを使った方が手軽&便利&安全な気がします(`・ω・´)