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、ブラウザ名で制御) / ...(記事連続表示)
最近の記事: Galaxy S25 Ultra (Samsung) / トヨタ・アルファード / 冷蔵庫に赤外線センサースイッチLEDライト(CL-CGM-D)を取り付け / 消えるハンコ文化 - プチコン4でハンコを題材にした物理演算ゲーム / CASIO(カシオ) 32鍵盤ミニキーボード SA-45(2020年購入品) / 蛍光灯2本を取り替えて我が家の照明の全面LED化完了 / 息子のスマートフォンを5年ぶりに買い替え(Google Pixel 10) / ドラゴン対ゴキブリ千匹 - プチコン4でスプライト1000個を使ったゲーム / HandBrake - 動画ファイル一括変換ソフト / 笑って!ダミーちゃん - プチコン4でマイナーキャラの掘り起こしゲーム
■ ホームへ
|