J'ai lu sur la façon de déterminer si une IP est IPv4 ou IPv6 et il me semble évident que la chose à rechercher est de savoir s'il y a un deux-points. Cependant, vous disposez d'adresses IPv6 mappées IPv4 et d'adresses IPv6 compatibles IPv4. Il me semble que ces types d'adresses ont deux-points et périodes, donc au lieu de solutions qui cherchent s'il n'y a pas ::ffff
au début de la chaîne, pourquoi ne pas faire ceci:IPV4 vs IPV6 PHP Fonction
function isIPv6($ip) {
if(strpos($ip, ":") !== false && strpos($ip, ".") === false) {
return true;
}
return false;
}
EDIT: Am Il me manque quelque chose ou cette fonction fonctionnerait-elle correctement dans tous les cas?
est-ce une question? vous semblez fourni une fonction qui détecte IPv6. – Raptor
Pourrait regarder la longueur de l'IP? – Class
Ou vous pouvez le rendre facile sur vous-même et utiliser ['FILTER_FLAG_IPV4' ou' FILTER_FLAG_IPV6' avec 'filter_var()'] (http://php.net/manual/fr/function.filter-var.php). –