LUNARAVE WEBクリエイターの仕事と休息

アクセスカウンタ

Google Maps APIの利用戦国IXAWeb技術Youtubeチャンネル

zoom RSS WordPress内でIPによるアクセス制限をかけるスクリプト -WordPress-

<<   作成日時 : 2012/05/09 21:47   >>

ブログ気持玉 0 / トラックバック 0 / コメント 4

CMSとしての機能が充実した"Wordpress"でアクセス者のIPアドレスからコンテンツの表示・非表示を振り分けることにする。

処理の内容としては指定したIPアドレスまたはネットワーク範囲である場合は特定のページを表示するものとする。
アクセス制限はプラグインを利用せず、自作のソースをテンプレートに埋め込むため、予め"Exec-php"を組み込んでおく。
->WordPress内でPHPを実行させるプラグイン -WordPress-

 アクセス制限


次に、アクセス制限をしたいテンプレートまたはヘッダーの冒頭に下記を追記する。


<?php
$deny[0] = '192.168.0.1';
$deny[1] = '192.168.*';

$getIp = $_SERVER['REMOTE_ADDR'];
foreach ($deny as $value) {
$str = str_replace('*', '\d*', $value);

if(preg_match ('/'.$str.'/i', $getIp)) {
//含まれている
include(TEMPLATEPATH .'/page.php');
break;
}else{
//含まれていない
print $getIp . "Not Access
\n";
}
}
?>



「$deny[0]」はIPの個別指定を、「$deny[1]」はネットワーク範囲を指定している。
固定IPの場合は「$deny[0]」でよいが、一般のプロバイダは変動があるため「$deny[1]」が望ましい。

後はアクセス者のIPを取得して、指定しているIPが含まれているかマッチング処理をしている。

「敷地内や事務所内からのアクセスを許可する」としたい場合に活用できる。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(4件)

内 容 ニックネーム/日時
IPアドレスでの表示設定、とても参考になりました。ありがとうございます。
くろむ
URL
2012/07/07 11:08
パスワード制限等に比べて利用者には便利ですね。
LUNARAVE
2012/07/08 13:05
大変参考になりました。ありがとうございます。
質問です。
IPの個別指定を2つ以上設置したい場合はどういう記述をすればよいでしょか?教えてください。
かきのたね
2013/03/21 17:10
上の例に追加する場合は、4行目に「$deny[2] = '192.168.*';」と書くといいですよ。
LUNARAVE
2013/04/04 21:37

コメントする help

ニックネーム
URL(任意)
本 文
WordPress内でIPによるアクセス制限をかけるスクリプト -WordPress- LUNARAVE WEBクリエイターの仕事と休息/BIGLOBEウェブリブログ
文字サイズ:       閉じる