我一直在阅读有关如何确定 IP 是 IPv4 还是 IPv6 的内容,对我来说,要寻找的东西是是否有冒号似乎很明显。但是,您有 IPv4 映射的 IPv6 地址和 IPv4 兼容的 IPv6 地址。在我看来,这些类型的地址既有冒号又有句点,所以与其寻找::ffff
字符串开头是否有 no 的解决方案,不如这样做:
function isIPv6($ip) {
if(strpos($ip, ":") !== false && strpos($ip, ".") === false) {
return true;
}
return false;
}
编辑:我是否遗漏了什么或者这个功能在所有情况下都能正常工作?