Extraction des adresses ip

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 830 fois - Téléchargée 15 fois

Contenu du snippet

Permet tout simplement d'extraire les adresses IP d'un texte.

Valide:
192.168.0.1 ss
127.0.0.1
10.40.1.10
209.209.209.209
255.12.3.255
7.123.2.23
1.0.0.1
42.21.32.45

Non-valide:
256.10.40.30
1199.1199.1199.119
255.255.255.no-ip
127.0.0.
127-0-0-1
127.0.0.0
0.0.0.1
9994.12.123.124
456.123.456.789
0.0.0.0

Source / Exemple :


\b(?:[1-9]|1?\d{2}|25[0-5]|2[0-4]\d)\.(?:(?:\d|1?\d{2}|25[0-5]|2[0-4]\d)\.){2}(?:[1-9]|1?\d{2}|25[0-5]|2[0-4]\d)\b

A voir également

Ajouter un commentaire Commentaires
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
certes

gaffe, elle autorise:
127.0.0.0
0.0.0.1
0.0.0.0
Messages postés
117
Date d'inscription
lundi 23 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009

Hello,

dans le temps j'avais trouvé ça, ça paraît plus court, non ?
^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)$
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Oui, excellente idée. Bon, c'est fini, je ne t'embête plus ;)
Merci pour ce code.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
trop bête de ma part, je sais pas ce qu'il fait là ^^

je devais penser à un 1? (pour gérer les 11 -> 99)

\b(?:[1-9]|1?\d{2}|2[0-5]{2})\.(?:(?:\d|1?\d{2}|2[0-5]{2})\.){2}(?:[1-9]|1?\d{2}|2[0-5]{2})\b

Valide:
192.168.0.1 ss
127.0.0.1
10.40.1.10
255.12.3.255
7.123.2.23
1.0.0.1
42.21.32.45

Non-valide:
256.10.40.30
1199.1199.1199.119
255.255.255.no-ip
127.0.0.
127-0-0-1
127.0.0.0
0.0.0.1
9994.12.123.124
456.123.456.789
0.0.0.0
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
C'est encore moi ! :(
1199.1199.1199.1199 est validé alors qu'il ne le devrait pas. Si une valeur commence par le chiffre "1", alors elle ne peut être suivie que par deux digits maximum. Or, dans ton expression :
[1-9]|1*\d{2}|2[0-5]{2}
L'astérisque derrière le 1 dans la deuxième alternative permet de mettre autant de 1 que voulu. Il suffit donc de le retirer.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.