때로는 필요가 특정 범위 내에서 특정 IP가하는 서브넷 네트워크, 하나가 시작 CCNA 지식이 명확하게 계산되지 않을 수 있습니다 학습에 대한 서브넷 주소를 계산하기 위해 필요의 끝과 끝, 판단하기 어려운 여부를 결정합니다. 코드를 살펴 :
<?php
/**
* 判断IP是否在某个网络内
* 运维生存时间
* site:www.ttlsa.com
* @param $ip
* @param $network
* @return bool
*/
function ip_in_network($ip, $network)
{
$ip = (double) (sprintf("%u", ip2long($ip)));
$s = explode('/', $network);
$network_start = (double) (sprintf("%u", ip2long($s[0])));
$network_len = pow(2, 32 - $s[1]);
$network_end = $network_start + $network_len - 1;
if ($ip >= $network_start && $ip <= $network_end)
{
return true;
}
return false;
}
?>
이 방법은 공통의 함수로서 사용될 수있다. 장황한 하나가 강력 ip2long 다음 데이터베이스로 변환 사용하는 것이 좋습니다, 데이터베이스에 저장된 IP 주소에 대한 케이스를 넣어. HTTP : //www.ttlsa.com/html/2751.html 재 인쇄에 대한 소스를 표시하시기 바랍니다
HTTPS : //my.oschina.net/766/blog/211135 재현