KUNISAN.JPブログコメント書き込み



PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御)

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2014年2月15日
久しぶりのPHPネタです。簡易アクセスブロックプログラムを公開します。

・簡易アクセスブロックプログラムのダウンロード
acc_check.zip (index.html サンプルページ、error_check.php アクセス制御プログラム、error.php エラーページ)
※全ファイルをサーバー上の同一フォルダーに入れます。PHPが動作可能であることも条件です

例えば「特定の団体(会社など)やプロバイダーからのアクセスの場合、ホームページを表示しないようにしたい」という時に使えるプログラムです。メインの"error_check.php"の中身は以下の通りです。

■ error_check.php
<html>
<head>
<title>Error Check</title>
</head>

<body>
Error Check<br>

<?php

//クライアントのIPアドレス取得
$ip = $_SERVER['REMOTE_ADDR'];
//IPアドレスをホスト名に変換
$host = gethostbyaddr($ip);
//クライアントのUSER AGENT取得
$agent = $_SERVER['HTTP_USER_AGENT'];

if ((eregi('ocn',$host)||eregi('122.136',$ip))||eregi('NT 6.3',$agent)) {
print '
<script language="JavaScript">
top.location.href = "error.html";
</script>
';
}

?>

</body>
</html>


上記のプログラムは、「アクセス元のプロバイダーがOCN、またはIPアドレスに122.136が含まれる、またはWindows 8.1の場合」にエラー画面(error.html)に遷移する、という内容になっています。if文内の条件を変更することで、アクセスブロックする対象を変更することができます。例えば…、

if ((eregi('abc',$host)&&eregi('NT 6.3',$agent)) {

このように変更することで、「アクセス元がABC社かつWindows 8.1の場合」にエラー画面に遷移する、という形にできます。

このプログラムをアクセス制御したいページ(htmlファイル等)にiframeとして組み込むことで、該当のページを開いた時にアクセス制御のプログラムが実行される形になります。該当ページのファイルに、以下のように記述します(acc_check.zip内のindex.htmlを参照してください)。

<iframe src="errorcheck.php" style="margin: 0px; border-width: 0px; width: 1px; height: 1px; visibility: hidden;"></iframe>

簡易的なプログラムなので、知っている人ならアクセスブロックを回避するのも難しくはないですが、少なくとも「面倒くさいなあ…」と思わせることは可能です。





PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示)

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE) をAmazon.co.jpでチェック


1)商品の宣伝、宗教や政治活動の勧誘など、本サイトの趣旨に合わない書き込みはご遠慮ください。
2)個人、団体への誹謗中傷や、差別的な発言、公序良俗に反する表現は禁止します。
3)本ブログへの書き込みによって何らかの問題が発生した場合、KUNISAN.JP管理者までご連絡いただければ、内容の修正、削除を行います(その他の責任については負いかねます)。
4)製作者サイドの都合により、予告無く書き込みの一部または全てが削除されることがあります。あらかじめご了承ください。
5)迷惑メールやコンピュータウィルス被害を防止するため、必要な場合以外にはメールアドレスを書き込まないことをお勧めします。

タイトル
お名前 (※必須)
Eメール
ホームページ

コメント (※必須)


画像ファイル(サイズ:10MB以下 形式:gif,jpeg,jpg,png)