Home > PHP

PHPでIPアドレスからアクセスの制御をする

2010.04.03 23:40
 PHPでファイルアクセスをするのは比較的簡単なのがIPアドレスで制御してあげることです。IPアドレスはそのアクセスに固有のものなので殆どハッキングが不可能になります。
 使い方はとても簡単です。設定部分に許可するIPアドレスをリストアップしてから、メインファイルでこの関数を呼び出します。ファイルの冒頭付近で呼び出してください。それから、$_SERVER['REMOTE_ADDR']でIPアドレスを取得して関数に渡してあげます。アクセスが許可された場合は返り値に1が返ります。アクセスが許可されない場合(リストにIPアドレスがない場合)はアクセスが拒否されます。あらかじめ拒否された場合のURLを指定していれば自動的にそこのURLへ強制的にジャンプします。URLが指定されていない場合は、0が返り値として返ってきます。
 複雑なコントロールをさらに続ける場合は、ブール値で値を返すとよいです。(つまり、URLを指定しない。)

require_once("function/access_ctrl.php");
$ip = $_SERVER['REMOTE_ADDR'];
$re = access_permit($ip);
print $re;

<?
function access_permit ($ip) {
#=============================================
# IPアドレスからクライアントのアクセスを許可する
#=============================================
    /*
    IPアドレスを引数として許可するIPの場合は1を返します。
    許可リストにないIPアドレスの場合は、
    1.URLが指定されている場合はそのURLへ強制的にジャンプさせ、
    2.URLが指定されていない場合は0を返します。
    
    */
    #------
    # 設定
    #------
   
    # アクセスを許可するIPアドレスを設定
    $permit_list = array (
        //ネットワーク関係
        "127.0.0.1",
        "192.168.11.3",
        "192.168.11.6",
        "192.168.11.48"
    );
   
    # アクセスを許可しない場合のジャンプ先
    $jamp = 'http://omnioo.com/';
   
    # 設定終わり
   
    #-----------------
    # IPアドレスを検証
    #-----------------
    foreach ($permit_list as $k=>$v) {
        if ($ip == $v) {
            $permit_flag = 1;
            break;
        } else {
            $permit_flag = 0;
        }
    }
   
    if ($permit_flag) {
        return $permit_flag;
    } else {
        if ($jamp) {
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: $jamp");
        } elseif ($jamp == '') {
            return $permit_flag;
        }
    }
   
}
?>






プロフィール



  • Name :: 山上オサム ♂(39)
  • Hobby :: 武術
  • Work :: Web Designer