用正则表达式把四个数值取出来,然后再转换为长整型进行判断,例如:
$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 '范围外';
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;
}