检查变量是 ipv4 还是 ipv6 的最佳方法


Best way to check if variable is ipv4 or ipv6

我已经看到了几种不同的方法来检查PHP变量是ipv4还是v6。但是我还没有找到一种方法来检查不同类型的IPV6。因此,如果 V6 IP 未以某种格式输入,则不会将其标记为 IPV6。

我需要一些东西来检查IPV4与IPV6,同时还要检查不同类型的IPV6

if ($ipv4=filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
  echo "$ipv4 is ipv4";
} elseif ($ipv6=filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
  echo "$ipv6 is ipv6";
} else {
  echo "Invaid IPv4/6: $ip";
}