IPアドレスのマッチング

IPアドレス(単数、複数)のマッチングするモジュール

PHP

/** * * IPアドレスのマッチング * * @param string $ip_list * @param string $remote_addr * @return boolean */ function getIpMatching($ip_list, $remote_addr) { $acsess_flg = FALSE; if (strpos($ip_list, ',') === FALSE) { // IPの指定が1つ XXX.XXX.XXX.XXX/XX $ip_list_arr = array($ip_list); } else { // IPの指定が複数 XXX.XXX.XXX.XXX/XX,XXX.XXX.XXX.XXX/XX,XXX.XXX.XXX.XXX/XX $ip_list_arr = explode(',', $ip_list); } foreach($ip_list_arr as $ipListKey => $ipListVal) { if (strpos($ipListVal, '/') === FALSE) { $ip = $ipListVal; // IPの形式がXXX.XXX.XXX.XXX if ($ip == $remote_addr) { $acsess_flg = TRUE; break; } } else { list($ip, $bit_mask) = explode('/', $ipListVal); // IPの形式がXXX.XXX.XXX.XXX/XX $allow_ip_long = ip2long($ip) >> (32 - $bit_mask); $acsess_ip_long = ip2long($remote_addr) >> (32 - $bit_mask); if ($acsess_ip_long == $allow_ip_long) { $acsess_flg = TRUE; break; } } } return $acsess_flg; }

サンプル

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について