php求正则表达式!!?(10.42.112.0至到10.42.155.255) 如10.42.114.6 返回true,10.25.110.9 返回false

谢谢了。
2025-02-27 18:32:26
推荐回答(2个)
回答1:

用正则表达式把四个数值取出来,然后再转换为长整型进行判断,例如:
$ip='10.42.114.6';
if (preg_match('^|(\d+)\.(\d+)\.(\d+)\.(\d+)|$', $ip, $r)) $n=(($r[1]*256+$r[2])*256+$r[3])*256+$r[4];
else $n=0;
if ($n>=((10*256+42)*256+112)*256+0 && $n<=((10*256+42)*256+155)*256+255) echo '范围内';
else echo '范围外';

回答2:

if (preg_match('/\A(?:10\.42\.1(1[2-9]|[2-4][0-9]|5[0-5])\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\Z/', $subject)) {
$result = true;
} else {
$result = false;
}