PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php function ipMatch($clientIp, $ranges) { if ($clientIp = ip2long($clientIp)) { foreach ($ranges as $ip) { // формат 127.0.0.1-127.0.0.3 if (str_contains($ip, '-')) { [$ipFirst, $ipLast] = explode('-', $ip, 2); if ($clientIp <= ip2long($ipLast) && ip2long($ipFirst) <= $clientIp) { return true; } continue; } // формат 127.0.0.0/24 if (str_contains($ip, '/')) { [$ip, $netmask] = explode('/', $ip, 2); // верим что $netmask будет от 0-32 } else { $netmask = 32; } if (0 == substr_compare(sprintf('%032b', ip2long($ip)), sprintf('%032b', $clientIp), 0, $netmask)) { return true; } } } return false; } var_dump(ipMatch('50.162.112.0', ['50.162.0.0-50.162.109.255']));
Show:  
Copy Clear