[함수] IP class 비교
ip를 대역으로 비교할 일이 생겨서...
function compareIpClass($lip, $rip, $mask=32) {
$mask = pow(256,4)>>(!!($mask%8) ? 32 : $mask);
$lip = (int)(ip2long($lip)/$mask);
$rip = (int)(ip2long($rip)/$mask);
return $lip === $rip;
}
compareIpClass('192.168.1.111', '192.168.1.112', 32); // false
compareIpClass('192.168.1.111', '192.168.1.112', 24); // true
compareIpClass('192.168.1.111', '192.168.1.112', 16); // true
compareIpClass('192.168.1.111', '192.168.1.112', 8); // true
아 몰라 대충 쓸래요...
$m1 = ip2long($ip1) >> (32 - $mask);
$m2 = ip2long($ip2) >> (32 - $mask);
return $m1 == $m2;
표현식을 좀 더 확장해서 비교..
http://pear.oops.org/docs/WebAPI/WebAPI.html#methodfilter_ip
pear channel-discover pear.oops.org
pear install oops/WebAPI
로 설치해서 사용하실 수 있습니다.
한글/utf8용 substr이나 autolink 등등 유용한 것 많음 :-)
출처 phpschool
'개발-PHP' 카테고리의 다른 글
[함수] explode 3번째 인자. a=b=c=d ==> "a" => "b=c=d" (0) | 2016.03.30 |
---|---|
[함수] gmp]큰 수의 진수변환 (0) | 2016.03.30 |
[함수] sms 발송등에서 80자씩 잘라서 배열로 리턴하는 함수 - utf-8 (0) | 2016.03.30 |
[함수] UTF-8 다운로드 파일명 처리 [업데이트] (0) | 2016.03.30 |
[함수] 한국 IP대역 체크 (0) | 2016.03.30 |