Scripts
IP range + checker
Hiermee kan je met de eerste functie een IP range maken door middel van een IP en een masker. De tweede functie levert true als een gegeven IP-adres zich binnen een opgegeven range bevindt.
ip-range-checker
<?php
function iprange($range,$mask){ // make IP range
$range = ip2long($range);
$mask = ip2long($mask);
$start = $range & $mask; // first IP
$end = $start + ~$mask; // last IP
return array('start'=>long2ip($start),'end'=>long2ip($end));
}
function in_iprange($ip,$range,$mask=null){ // check if IP is in range
if(!is_array($range)) $range = iprange($range,$mask); // create range
return (ip2long($ip) <= ip2long($range['end'])) && (ip2long($ip) >= ip2long($range['start']));
}
// voorbeeldje
$ip1 = '192.168.1.1';
$ip2 = '172.16.25.3';
$range = '192.168.0.0';
$mask = '255.255.0.0';
$iprange = iprange($range,$mask);
var_dump($iprange, in_iprange($ip1,$range,$mask), in_iprange($ip2,$iprange));
?>
Levert:
[code]array(2) {
["start"]=>
string(11) "192.168.0.0"
["end"]=>
string(15) "192.168.255.255"
}
bool(true)
bool(false)[/code]
Reacties
0