Para el número de 0 a 255 utilizo esta expresión regular:
(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))
La expresión regular anterior coincidirá con el número entero de 0 a 255, pero no coincidirá con 256.
Entonces, para IPv4 utilizo esta expresión regular:
^(([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})$
Está en esta estructura: ^(N)((\.(N)){3})$
donde N es la expresión regular utilizada para hacer coincidir el número de 0 a 255.
Esta expresión regular coincidirá con la IP como se muestra a continuación:
0.0.0.0
192.168.1.2
pero no los de abajo:
10.1.0.256
1.2.3.
127.0.1-2.3
Para IPv4 CIDR (enrutamiento entre dominios sin clase) utilizo esta expresión regular:
^(([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]))$
Está en esta estructura: ^(N)((\.(N)){3})\/M$
donde N es la expresión regular utilizada para hacer coincidir el número de 0 a 255, y M es la expresión regular utilizada para hacer coincidir el número de 0 a 32.
Esta expresión regular coincidirá con CIDR como se muestra a continuación:
0.0.0.0/0
192.168.1.2/32
pero no los de abajo:
10.1.0.256/16
1.2.3./24
127.0.0.1/33
Y para la lista de IPv4 CIDR como "10.0.0.0/16", "192.168.1.1/32"
yo uso esta expresión regular:
^("(([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]))"))*)$
Está en esta estructura: ^(“C”)((,([ ]*)(“C”))*)$
donde C es la expresión regular utilizada para coincidir con CIDR (como 0.0.0.0/0).
Esta expresión regular coincidirá con la lista de CIDR como se muestra a continuación:
“10.0.0.0/16”,”192.168.1.2/32”, “1.2.3.4/32”
pero no los de abajo:
“10.0.0.0/16” 192.168.1.2/32 “1.2.3.4/32”
Tal vez pueda ser más corto, pero para mí es fácil de entender tan bien para mí.
¡Espero eso ayude!
ping 2130706433
yping 127.1
por una risita.