リクエストしたクライアントが管理しているネットワーク内かどうか判定する為の関数。
- /**
- 同じネットワーク内にいるか判定する
- @param $ip チェックするIPアドレス
- @return true..いる false..いない
- */
- private function inCIDR($ip) {
- $CIDR_LIST = array('127.0.0.1/24', '192.168.0.0/24'); // この範囲いないにいるかチェックする。普通外に持つか、もらう。
- for($i=0; $i<count($CIDR_LIST); $i++) {
- $cidr = $CIDR_LIST[$i];
- list($network, $mask_bit_len) = explode('/', $cidr);
- $host = 32 - $mask_bit_len;
- $net = ip2long($network) >> $host << $host;
- $ip_net = ip2long($ip) >> $host << $host;
- if($net==$ip_net) {
- // 一致したので同じ中にいる。
- return true;
- }
- }
- return false;
- }
0 件のコメント:
コメントを投稿