구성 파일을 추가한 다음 특정 규칙을 통해 구성 파일에 금지해야 하는 일부 IP 주소를 추가할 수 있습니다. 프로그램이 초기화되면 구성 파일의 각 규칙을 읽은 다음 이 문서에서 제공하는 방법을 사용하세요. 현재 액세스한 클라이언트 IP 주소가 이러한 규칙에 존재하는지 확인하십시오. 존재하는 경우 서비스가 거부됩니다.
코드 복사 코드는 다음과 같습니다.
/**
* PHP에서 IP 주소 확인 또는 필터링
*
* IP 범위, CIDR(Classless Inter-Domain Routing) 및 단일 IP 형식 지원
* 구성: http://www.CodeBit. cn
* 참조:
* - {@link http://us2.php.net/manual/zh/function.ip2long.php#70055}
* - {@link http://us2 . php.net/manual/zh/function.ip2long.php#82397}
*
* @param string $network 네트워크 세그먼트, IP 범위, CIDR 및 단일 IP 형식 지원
* @param string $ 확인할 IP 주소
* @return boolean
*/
function netMatch($network, $ip) {
$network = Trim($network);
$ip = Trim($ip)
$result
// IP 범위: 174.129.0.0 - 174.129.255.255
if (false !== ($pos = strpos($network, "-"))) {
$from = ip2long(trim(substr($network, 0, $ pos)));
$to = ip2long(trim(substr($network, $pos 1)))
$ip = ip2long($ip); ip > = $from 및 $ip <= $to);
// CIDR : 174.129.0.0/16
} else if (false !== strpos($network,"/"))
목록($net, $mask) = 폭발('/', $network)
$result = (ip2long($ip) & ~((1 << (32 - $mask)) - 1) ) == ip2long($net);
// 단일 IP
} else {
$result = $network === $ip
}
return $result;
}
// 174.129.0.0 - 174.129.255.255
var_dump(netMatch(' 174.129.0.0 - 174.129.255.255 ', '174.129.1.31')) // 참
var_dump(net 경기 (' 1 74.129 .0.0/16 ', '174.139.1.31')); // 거짓
var_dump(netMatch(' 174.129.1.32 ', '174.129.1.31')) // 거짓
?> ;