Validación de direcciones IP con PHP
Escrito por J.F. el Miércoles, 17 de Octubre del 2007 a las 14:49
Una expresión regular para validar si se ha introducido una dirección IP con un formato correcto:
-
$string = "255.255.255.0";
-
'^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$',
-
$string)) {
-
echo "Formato de IP Correcto";
-
}
Categoria: PHP
- Añadir este post a
- Del.icio.us -
- Meneame -
- Digg -
- Webeame
Entradas relacionadas
Comentario de Cesar Morel
Realizado el Jueves, 8 de Noviembre del 2007 a las 1:53
He probado esa rutina y me ha fallado en varios intentos con PHP5. En su lugar utilizo una heredada de un script de bash que que hasta aqui me ha dado buenos resultados.
NOTA: valida cualquier direccion de ip que no termine en 255.
Comentario de J.F.
Realizado el Sábado, 10 de Noviembre del 2007 a las 14:04
Hola, gracias por el apunte. ¿Podrías compartir ese script de bash?
Muchas gracias, saludos.
Comentario de Cesar Morel
Realizado el Lunes, 4 de Febrero del 2008 a las 13:01
$validacion ="^([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.";
$validacion .="([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.";
$validacion .="([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.";
$validacion .="([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4]))";
$ip = "192.168.3.48" // Cambiar esta linea
if (ereg($validacion,$ip)) {
echo "Formato de IP correcto";
} else {
echo "Formato Incorrecto";
}
Comentario de Walter
Realizado el Lunes, 17 de Noviembre del 2008 a las 6:16
Hola, solo queria dejarles una simple mejora para la solución de Cesar Morel, ya que ante una IP de la forma “192.168.1.0a” la considera correcta.
Consiste en agregar el simbolo “$” al final de la ultima linea de $validacion.
Gracias.
$validacion =”^([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.”;
$validacion .=”([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.”;
$validacion .=”([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.”;
$validacion .=”([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4]))$”;
$ip = “192.168.3.48″ // Cambiar esta linea
if (ereg($validacion,$ip)) {
echo “Formato de IP correcto”;
} else {
echo “Formato Incorrecto”;
}

