개발-PHP

[함수] IP class 비교

WEBKIKIS 2016. 3. 30. 20:57
반응형

[함수] 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

반응형