Bonjour,
En PHP, j'aurais besoin de savoir si une adresse IP se trouve dans l'une d'une série de plages.
Autan l'adresse IP que les plages peuvent être IPv4 ou IPv6.
function is_ip_in_ranges( $ip, $ranges )
{
// ← dois-je ici réinventer la roue ? :/
}
$badranges= array (
"2a03:2880:f026::/48",
"31.13.81.0/24",
"2a03:2880:f11b::/48",
"31.13.91.0/24",
"179.60.195.0/24",
"2a03:2880:f228::/48"
);
$clientip = $_SERVER['REMOTE_ADDR']; // IPv4 ou IPv6 !
if( is_ip_in_ranges( $clientip, $badranges ) )
echo ":(";
else
echo ":)";
J'ai trouvé des pistes, du genre :
https://www.w3schools.com/php/filter_validate_ip.asp
Uniquement distinguer une IPv4 ou IPv6…
https://gist.github.com/tott/7684443
Uniquement IPv4 :(
Avant de réinventer la roue, je vous demande si vous avez déjà sous la main un code éprouvé :)
Merci d'avance.
# les expressions regulieres et 2 tableaux badrange ;)
Posté par NeoX . Évalué à 2.
un badrange_ipv4, un badrange_ipv6
et des comparaisons strictes $clientip =$badrange[x]
ou des expressions regulieres
# Dans ton propre lien gist…
Posté par Moonz . Évalué à 2.
https://github.com/symfony/http-foundation/blob/master/IpUtils.php
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.