Pour le nombre de 0 à 255, j'utilise cette regex:
(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))
Au-dessus de regex correspondra un nombre entier de 0 à 255, mais pas 256.
Donc, pour IPv4, j'utilise cette regex:
^(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})$
C'est dans cette structure: ^(N)((\.(N)){3})$
où N est l'expression régulière utilisée pour faire correspondre le nombre de 0 à 255.
Cette expression régulière correspondra à IP comme ci-dessous:
0.0.0.0
192.168.1.2
mais pas ceux ci-dessous:
10.1.0.256
1.2.3.
127.0.1-2.3
Pour IPv4 CIDR (Classless Inter-Domain Routing), j'utilise cette expression régulière:
^(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))$
C'est dans cette structure: ^(N)((\.(N)){3})\/M$
où N est l'expression régulière utilisée pour faire correspondre le nombre de 0 à 255, et M est l'expression régulière utilisée pour faire correspondre le nombre de 0 à 32.
Cette expression régulière correspondra au CIDR comme ci-dessous:
0.0.0.0/0
192.168.1.2/32
mais pas ceux ci-dessous:
10.1.0.256/16
1.2.3./24
127.0.0.1/33
Et pour la liste des adresses IPv4 CIDR comme "10.0.0.0/16", "192.168.1.1/32"
j'utilise ce regex:
^("(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))")((,([ ]*)("(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))"))*)$
C'est dans cette structure: ^(“C”)((,([ ]*)(“C”))*)$
où C est l'expression régulière utilisée pour correspondre au CIDR (comme 0.0.0.0/0).
Cette regex correspondra à la liste des CIDR comme ci-dessous:
“10.0.0.0/16”,”192.168.1.2/32”, “1.2.3.4/32”
mais pas ceux ci-dessous:
“10.0.0.0/16” 192.168.1.2/32 “1.2.3.4/32”
Peut-être que cela pourrait devenir plus court mais pour moi, c'est facile à comprendre si bien pour moi.
J'espère que cela aide!
ping 2130706433
etping 127.1
pour un rire.