$in_range = false;
if (!empty($test_ip_address)) {
foreach($old_trusted_hosts as $host) {
- list($network, $mask) = explode('/', $host.'/');
- if (empty($network)) continue;
- if (strlen($mask) == 0) $mask = 32;
-
- if (ip_in_range($test_ip_address, $network, $mask)) {
+ if (address_in_subnet($test_ip_address, $host)) {
$in_range = true;
- $validated_by = $network.'/'.$mask;
+ $validated_by = $host;
break;
}
}
return $keypair;
}
-/**
- * Check that an IP address falls within the given network/mask
- * ok for export
- *
- * @param string $address Dotted quad
- * @param string $network Dotted quad
- * @param string $mask A number, e.g. 16, 24, 32
- * @return bool
- */
-function ip_in_range($address, $network, $mask) {
- $lnetwork = ip2long($network);
- $laddress = ip2long($address);
-
- $binnet = str_pad( decbin($lnetwork),32,"0","STR_PAD_LEFT" );
- $firstpart = substr($binnet,0,$mask);
-
- $binip = str_pad( decbin($laddress),32,"0","STR_PAD_LEFT" );
- $firstip = substr($binip,0,$mask);
- return(strcmp($firstpart,$firstip)==0);
-}
-
/**
* Check that a given function (or method) in an include file has been designated
* ok for export
$trusted_hosts = explode(',', get_config('mnet', 'mnet_trusted_hosts'));
foreach($trusted_hosts as $host) {
- list($network, $mask) = explode('/', $host.'/');
- if (empty($network)) continue;
- if (strlen($mask) == 0) $mask = 32;
-
- if (ip_in_range($_SERVER['REMOTE_ADDR'], $network, $mask)) {
+ if (address_in_subnet(getremoteaddr(), $host)) {
return true;
}
}