website stats » Validación de direcciones IP con PHP | Solo Código |

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:

PHP:
  1. $string = "255.255.255.0";
  2. '^(?: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}$',
  3. $string)) {
  4. echo "Formato de IP Correcto";
  5. }

Categoria: PHP

4 Comentarios

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”;
}

Escribir un comentario

Puedes usar las siguientes etiquetas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Solo Código

Solo Código es una colección de códigos de todo tipo que pueden resultar útiles para el diseño de páginas web. Está enfocado tanto para aquellos que son expertos, como para aquellos principiantes que quieren encontrar recursos útiles, o no saben implementar determinadas funciones en sus webs. No olvides que Solo Código es un blog de Informática Práctica, donde tenemos otras secciones interesantes como:
| Tutoriales | Trucos | Software | Links | Buscar |