说,这种类型的Ipv4映射的Ipv6地址的前80位为0。如何用PHP进行检查?我需要更快速,更安全的方法来代替regexp。
最简单的方法是使用将地址从可打印形式转换为二进制形式inet_pton
。这将为您提供一个字符串,其中每个宪章都对应于地址的8位。然后,检查前80位是否为零就像检查返回的字符串的前10个字符一样简单:
$addr = '::10.1.2.3';
$bytes = inet_pton($addr);
if (substr($bytes, 0, 10) == "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") {
echo "Yes\n";
} else {
echo "No\n";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句