【发布时间】:2014-02-06 13:08:22
【问题描述】:
现在我正在使用 strcmp,但这并不是最佳选择。
那么,最好的方法是什么?
【问题讨论】:
现在我正在使用 strcmp,但这并不是最佳选择。
那么,最好的方法是什么?
【问题讨论】:
你也可以使用filter_var:
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
echo "IPV6 valid.";
} else {
echo "Not valid.";
}
您可以找到过滤器列表here。
【讨论】:
使用 strcmp 代替 strcpy。那一定是问题所在。
【讨论】:
你可以检查一下,如果: 在 IP 地址中:
if (strpos($_SERVER["REMOTE_ADDR"],":") !== false) //....IPv6
else //....IPv4
【讨论】:
使用inet_pton。也适用于 ipv4:
function ip_validate($ip){
return inet_pton($ip) !== false;
}
【讨论】:
What's the best way to do IPv6 check in PHP?。如果他只是想检查 IP,他就不会要求 IPv6。但是 idk,也许我只是误解了他。
$_SERVER["REMOTE_ADDR"]这是你的朋友。它检查地址。我想最简单的方法是检查这个地址是否有非数字符号。如果它包含一个,它是一个 IPv6 地址。也许有更好或更优雅的,但我从未使用过它,因为还没有提供商使用 IPv6。
【讨论】: