现在我正在使用strcmp,但这并不是最佳选择。
那么,最好的方法是什么?
答案 0 :(得分:5)
您还可以使用filter_var:
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
echo "IPV6 valid.";
} else {
echo "Not valid.";
}
您可以找到过滤器列表here。
答案 1 :(得分:1)
使用strcmp而不是strcpy。这一定是问题所在。
答案 2 :(得分:1)
如果{-1}}在ip-address中,你可以检查一下:
:
答案 3 :(得分:0)
使用inet_pton。也适用于ipv4:
function ip_validate($ip){
return inet_pton($ip) !== false;
}
答案 4 :(得分:0)
$_SERVER["REMOTE_ADDR"]
这是你的好友。它会检查地址。我想最简单的方法是检查这个地址是否有非数字符号。如果它包含一个,则为IPv6地址。也许有更好或更优雅的,但我从未使用它,因为还没有提供商使用IPv6。