Maison > développement back-end > tutoriel php > Comment vérifier si l'entrée est une adresse IPv6 à l'aide de PHP regex

Comment vérifier si l'entrée est une adresse IPv6 à l'aide de PHP regex

WBOY
Libérer: 2023-06-25 09:54:01
original
1835 Les gens l'ont consulté

IPv6 fait référence à Internet Protocol Version 6, un protocole d'adresse IP utilisé pour la communication Internet. Une adresse IPv6 est un nombre composé de 128 bits, généralement représenté par huit groupes de nombres hexadécimaux. En PHP, vous pouvez utiliser des expressions régulières pour vérifier si l'entrée est une adresse IPv6. Voici comment utiliser les expressions régulières PHP pour vérifier les adresses IPv6.

Étape 1 : Comprendre le format de l'adresse IPv6

Une adresse IPv6 se compose de 8 blocs hexadécimaux, chaque bloc séparé par deux points (:). Chaque bloc hexadécimal doit comporter 4 chiffres hexadécimaux. Voici quelques exemples d'adresses IPv6 :

2001:0db8:85a3:0000:0000:8a2e:0370:7334
fe80::1
::1

Dans les adresses IPv6, il y a plusieurs règles particulières à connaître :

  • Vous pouvez utiliser "::" pour représenter des blocs 0 consécutifs, mais ils ne peuvent apparaître qu'une seule fois.
  • S'il y a plusieurs "::" dans l'adresse IPv6, vous devez remplir 0 avant l'un des "::" ; ";
  • L'adresse IPv6 ne peut pas commencer par " : " ni se terminer par " ".

Étape 2 : Écrire une expression régulière PHP

En PHP, vous pouvez utiliser la fonction preg_match pour effectuer une correspondance d'expression régulière. Voici un exemple d'expression régulière PHP pour vérifier que l'entrée est une adresse IPv6 :

function is_ipv6_address($address) {
return preg_match('/^(

  (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4})| # 1: full IPv6 address
  (([0-9a-fA-F]{1,4}:){1,7}:)                  # 2: compressed IPv6 address with leading zeros
  (:([0-9a-fA-F]{1,4}:){1,6})                  # 3: compressed IPv6 address with intermediate zeros
  (([0-9a-fA-F]{1,4}:){1,5}:)                  # 4: compressed IPv6 address with leading and intermediate zeros
  ((:[0-9a-fA-F]{1,4}){1,5}:)                  # 5: compressed IPv6 address with trailing zeros
  ((:[0-9a-fA-F]{1,4}){1,4}:)                  # 6: compressed IPv6 address with leading, intermediate and trailing zeros
  ((:[0-9a-fA-F]{1,4}){1,3}:)                  # 7: compressed IPv6 address with leading, intermediate and trailing zeros
  ((:[0-9a-fA-F]{1,4}){1,2}:)                  # 8: compressed IPv6 address with leading, intermediate and trailing zeros
  ((:[0-9a-fA-F]{1,4}){1,1}:)                  # 9: compressed IPv6 address with leading, intermediate and trailing zeros
  )$/i', $address);
Copier après la connexion

}

La partie principale de l'expression régulière est des expressions régulières pour la correspondance diverses parties des adresses IPv6. Il comprend les 9 expressions régulières suivantes :

  • adresse IPv6 complète, telle que 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ; fe80::1;
  • Adresses IPv6 compressées avec des 0 en tête, telles que 2001:db8:85a3::8a2e:370:7334
  • Adresses IPv6 compressées avec des 0 au milieu et des 0 en tête, telles que 2001 :db8::8a2e : 370:7334;
  • Adresse IPv6 compressée avec 0 au milieu et 0 à la fin, par exemple : 2001:db8:85a3::7334;
  • Adresse IPv6 compressée avec 0 au début, 0 au milieu et 0 à la fin, par exemple : : 1;
  • Adresse IPv6 compressée avec 0 en début, 0 au milieu et 0 à la fin, par exemple ::;
  • Adresse IPv6 compressée avec 0 au début, 0 au milieu et 0 à la fin, par exemple ::db8:85a3:0:0:8a2e:370 : 7334 ;
  • Adresse IPv6 compressée avec 0 en tête, 0 au milieu et 0 à la fin, par exemple ::db8:85a3:0:8a2e:370:7334
  • Étape 3 : Utilisez le code PHP pour vérifier l'adresse IPv6

Pendant que. écriture Après avoir complété l'expression régulière ci-dessus, vous pouvez utiliser le code PHP suivant pour vérifier si l'entrée est une adresse IPv6 :

$address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";

if (is_ipv6_address($address )) {

echo "L'entrée est une adresse IPv6";
} else {
echo "L'entrée n'est pas une adresse IPv6";
}

Dans ce code, une chaîne d'adresse IPv6 $address est défini en premier, et la fonction is_ipv6_address est utilisée pour La chaîne est validée. Si la chaîne est une adresse IPv6, affiche "L'entrée est une adresse IPv6", sinon affiche "L'entrée n'est pas une adresse IPv6"

Résumé

En PHP, vous pouvez utiliser des expressions régulières pour valider l'entrée. Qu'il s'agisse d'une adresse IPv6. Comprenez d'abord le format de l'adresse IPv6, puis écrivez une expression régulière appropriée et utilisez la fonction preg_match pour correspondre. Après le test, l'expression régulière ci-dessus peut vérifier correctement la. Adresse IPv6.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal