EXTRACTION DES ADRESSES IP

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 1 avril 2009 à 21:06
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 12 août 2009 à 18:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49619-extraction-des-adresses-ip

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 août 2009 à 18:14
certes

gaffe, elle autorise:
127.0.0.0
0.0.0.1
0.0.0.0
erreurs404 Messages postés 117 Date d'inscription lundi 23 octobre 2000 Statut Membre Dernière intervention 12 août 2009
12 août 2009 à 16:18
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)$
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
2 avril 2009 à 18:05
Oui, excellente idée. Bon, c'est fini, je ne t'embête plus ;)
Merci pour ce code.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2009 à 09:46
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
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
2 avril 2009 à 09:41
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.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2009 à 09:26
valide, oui...
si ca choque, on peut utiliser :

\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

Non-valide:
256.10.40.30
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
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
2 avril 2009 à 09:12
Ok, c'est nettement mieux sauf que : 0.0.0.0 est valide !
Je sais, je suis ch...t :)
Bon courage.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2009 à 08:51
tu as parfaitement raison.

corrigeons:

\b(?:(\d|1*\d{2}|2[0-5]{2})\.){3}(\d|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

Non-valide:
256.10.40.30
255.255.255.no-ip
127.0.0.
127-0-0-1
9994.12.123.124
456.123.456.789
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 avril 2009 à 21:06
Une adresse IP telle que 999.999.999.999 serait donc valide ???

Il serait bon aussi de préciser que cette expression n'est valable que pour les adresses IP V4.