Solución:
Supongo que desea hacer coincidir estos rangos:
127. 0.0.0 – 127.255.255.255 127.0.0.0 /8 10. 0.0.0 – 10.255.255.255 10.0.0.0 /8 172. 16.0.0 – 172. 31.255.255 172.16.0.0 /12 192.168.0.0 – 192.168.255.255 192.168.0.0 /16
Le faltan algunos puntos que harían que se aceptara, por ejemplo 172.169.0.0
aunque esto no debería aceptarse. Lo he arreglado a continuación. Elimine las nuevas líneas, es solo para facilitar la lectura.
(^127.)|
(^10.)|
(^172.1[6-9].)|(^172.2[0-9].)|(^172.3[0-1].)|
(^192.168.)
También tenga en cuenta que esto supone que las direcciones IP ya han sido validadas; acepta cosas como 10.foobar
.
Esta es la misma que la respuesta correcta de Mark, pero ahora incluye direcciones privadas IPv6.
/(^127.)|(^192.168.)|(^10.)|(^172.1[6-9].)|(^172.2[0-9].)|(^172.3[0-1].)|(^::1$)|(^[fF][cCdD])/
He generado esto
REGEXP PARA REDES CLASE A:
(10)(.([2]([0-5][0-5]|[01234][6-9])|[1][0-9][0-9]|[1-9][0-9]|[0-9])){3}
REGEXP PARA REDES CLASE B:
(172).(1[6-9]|2[0-9]|3[0-1])(.(2[0-4][0-9]|25[0-5]|[1][0-9][0-9]|[1-9][0-9]|[0-9])){2}
REGEXP PARA REDES CLASE C:
(192).(168)(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){2}
Avísame si encuentras algún error
Si está seguro de su resultado (digamos, por ejemplo, netstat) y no necesita verificar la validez de la dirección IP porque ya está hecho, entonces puede capturar direcciones IP privadas con esta fórmula
grep -P “(10. | 192.168 | 172.1[6-9]. | 172.2[0-9]. | 172.3[01].). * “