この記事の方法には、対応できていない問題があります。
[修正版] PukiWiki もブラックリスト対応にをご覧ください
この記事は、2ちゃんねるの PukiWiki スレで紹介されていた 記事(BluesBBのDSBL(DNSBL)対応) を PukiWiki に適用したものです。
今回は、pukiwiki-1.4.6_rc を使います。
まず、ふつーにインストールして、使えることを確認します。
lib/auth.php
今回さわるのは、lib/auth.php です。2か所あります。
まずは、何らかのエディタで lib/auth.php を開いてください。
これからいじる場所 (その1)
check_editable という部分を探してください。
以下の画像のような場所が見つかるはずです。
コピペ (その1)
見つけたら、"// Basic-auth related ----" と "// Check edit-permission" の間に、以下の枠に囲んだコードをコピペします。
function is_blacklisted($dnsbl_target) {
$dnsbl_check=array("list.dsbl.org",
"niku.2ch.net");
if ($dnsbl_target) {
$quads=explode(".",$dnsbl_target);
$rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0];
for ($i=0; $i<count($dnsbl_check); $i++) {
if (checkdnsrr($rip.".".$dnsbl_check[$i] . '.',"A")) {
$listed.=$dnsbl_check[$i]." ";
}
}
if ($listed) { return $listed; } else { return FALSE; }
}
}
コピペ後 (その1)
コピペ後は以下の画像のようになります。
これからいじる場所 (その2)
先ほどコピペした数行下に移動します。
コピペ (その2)
global $script, $_title_cannotedit, $_msg_unfreeze
という部分があるので、その下に、以下の枠に囲んだコードをコピペします。
$blacklisted = "Your host is blacklisted.";
if (is_blacklisted($_SERVER['REMOTE_ADDR'])) {
// With exit
$body = $title = str_replace('$1',
htmlspecialchars(strip_bracket($page)), $_title_cannotedit);
if (is_freeze($page))
$body .= '(<a href="' . $script . '?cmd=unfreeze&page=' .
rawurlencode($page) . '">' . $_msg_unfreeze . '</a>)';
$page = str_replace('$1', make_search($page), $blacklisted);
catbody($title, $page, $body);
exit;
}
コピペ後 (その2)
コピペ後は以下の画像のようになります。
おしまい
これで修正は終わりです。
ファイルを保存して、修正後の lib/auth.php をアップロードしましょう。
そして、公開プロクシから書き込めるかチェックしてみてください。
有名な公開プロクシとしては、P2P技術で“2ちゃんねる効果”を軽減できる無料CDNが正式公開というのがあります。
拒否される例
上記プロクシ経由で編集しようとして拒否される例です。
ダウンロード
lib/auth.php まるごと入れ換え(書き換え済み) (ファイルを入れ替えるだけで使えるようになります)

Leave a comment