直接上代码:
$pattern = '/^(61\.140|219\.136)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/'; $ip = "61.141.123.5"; // 替换为实际的IP地址 if (preg_match($pattern, $ip)) { echo "IP地址符合要求"; } else { echo "IP地址不符合要求"; }
解释:
^(61\.140|219\.136):这一部分匹配以 "61.140" 或 "219.136" 开头的IP地址。
\.:匹配实际的点字符(需要使用反斜杠进行转义)。
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):这一部分匹配IP地址的每个分段,确保它们在0到255范围内。25[0-5]:匹配250到255之间的数字。
2[0-4][0-9]:匹配200到249之间的数字。
[01]?[0-9][0-9]?:匹配0到199之间的数字,允许0、1或2位数字。
$:表示匹配字符串的结尾。
因此,这个正则表达式会匹配以 "61.140" 或 "219.136" 开头的IP地址,并确保每个分段的值在0到255范围内。
你提供的IP地址是 "61.141.123.5"。由于这个IP地址的开头不是 "61.140" 或 "219.136",所以它不符合要求。因此,代码会输出 "IP地址不符合要求"。