Foros del Web » Programando para Internet » PHP »

Seguro que muy fácil!: Validación de dirección IP en un formulario

Estas en el tema de Seguro que muy fácil!: Validación de dirección IP en un formulario en el foro de PHP en Foros del Web. Hola a todos los foreros! Llevo un rato pensando, y despues otro buen rato buscando, tanto en el manual, como por aquí... y la verdad ...
  #1 (permalink)  
Antiguo 13/02/2007, 14:16
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Seguro que muy fácil!: Validación de dirección IP en un formulario

Hola a todos los foreros!

Llevo un rato pensando, y despues otro buen rato buscando, tanto en el manual, como por aquí... y la verdad me extraña no haber encontrado nada que me sirva :(, xq creo k lo k voy a preguntar es algo básico, pero la verdad es que no se me ocurre como hacerlo...

Tengo un formulario en el que un campo de tipo texto es para introducir una dirección IP, y me gustaría validar que el usuario la haya metido correctamente. Tiene que ser con PHP, no me sirve javascript, (aunque tp sabría como hacerlo...). ¿Alguien sabe como?

Si alguien me puede ayudar, estaría muy agradecida!!

Y ya de paso, otra question: ¿Vosotros en la bd como guardais este campo??? Yo lo he definido como un varchar de longitud 15, pero quizás hay una forma mejor.... no?

Muchas gracias a todoos!!!!!
  #2 (permalink)  
Antiguo 13/02/2007, 15:03
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Código PHP:
if (long2ip(ip2long($ip))) {
echo 
"La ip es correcta";

http://php.net/ip2long
http://php.net/long2ip
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 13/02/2007, 15:20
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

una pregunta por que el tiene que poner la ip, no sera mejor que automaticamente haga esto.

por lo del campo varchar esta bien

192.168.001.001 esa es una ip v4
pero en el futuro va a tener
192.168.001.001.001.001

osea mas, No se si evaluaste eso xD
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #4 (permalink)  
Antiguo 14/02/2007, 08:53
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

gracias a los dos!

oso96_2000: He mirado de nuevo en el manual y además he encontrado las mismas funciones que me has puesto, y no lo había visto... si es un perro me muerde!!! Las utilizaré.

FNX_NET: Gracias por el detalle de que las direcciones de IPv6 tendrán más dígitos. No me había dado cuenta de eso, pero bueno, por ahora no me influye. Respecto a la pregunta de x qué lo tiene que meter el usuario, y no la recojo ya automáticamnte es xq no me interesa la Ip del ordenador desde la que está el usuario, sino xq tengo un formulario para rellenar datos sobre equipos u ordenadores de un departamento, y un dato es la Ip de cada ordenador

Saludillos
  #5 (permalink)  
Antiguo 14/02/2007, 08:56
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

haaaa empieza por alli.

pero recuerda que las ip tendrias que ser fijas y no dinamicas xD.

o no :O?
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #6 (permalink)  
Antiguo 14/02/2007, 09:18
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Hola de nuevo!

He estado haciendo unas pruebillas con la función, y claro, tengo un problema. Por lo que yo entiendo, al combinar ambas funciones, cuando una Ip no existe, por defecto lo convierte a la dirección 255.255.255.255, no?? entonces, en mi comprobación me diría que la dirección es correcta.

El código que tengo para comprobar es:

Código:
function var_validarIP ($ip)
{
	$ip2 = long2ip(ip2long($ip));
	//$ip2 = ip2long($ip);
	if ($ip)
	{
		$resp = 0; //correcta
	}
	else
	{
		$resp = 1; //error
	}
	echo 'ip: '.$ip;
	echo 'ip2: '.$ip2;
	echo 'resp: '.$resp.'<br>';
	return $resp;
}
He hecho las siguientes pruebas pasándoles la dirección ip, y os muestro los resultados:

ip: 127.23.44.44ip2: 127.23.44.44resp: 0
ip: dfgvdfgip2: 255.255.255.255resp: 0
ip: 34.56.44.4ip2: 34.56.44.4resp: 0
ip: 33ip2: 0.0.0.33resp: 0
ip: 192.168.56.a34ip2: 255.255.255.255resp: 0

(resp 0 significa correcto...)

¿cómo podría comprobar que el usuario no meta una cadena de caracteres o que, como en el último caso, no se equivoque al escribir, y cosas similares???
¿Alguna idea¿???
  #7 (permalink)  
Antiguo 14/02/2007, 09:33
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

mira esta javascripts es solo para ingresar numeros y punto

<html>
<head>
<script language="JavaScript">
<!--
var nav4 = window.Event ? true : false;
function acceptNum(evt){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
var key = nav4 ? evt.which : evt.keyCode;
return (key == 13 || (key >= 48 && key <= 57) || key == 46);
}
//-->
</script>
</head>
<body>
<p><input type="text" name="valor" size="12" maxlength="12"
onKeyPress="return acceptNum(event)"></p>
</body>
</html>
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:

Última edición por FNX_NET; 14/02/2007 a las 11:22
  #8 (permalink)  
Antiguo 14/02/2007, 10:31
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
De acuerdo Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Cita:
Iniciado por FNX_NET Ver Mensaje
una pregunta por que el tiene que poner la ip, no sera mejor que automaticamente haga esto.

por lo del campo varchar esta bien

192.168.001.001 esa es una ip v4
pero en el futuro va a tener
192.168.001.001.001.001

osea mas, No se si evaluaste eso xD
Como se recoje la ip de la maquina cliente con php???. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #9 (permalink)  
Antiguo 14/02/2007, 11:21
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

<?

# codigo que intenta mostrar la IP local, IP pública, la IP del proxy y el hostname de la IP pública
#
if($_SERVER["HTTP_X_FORWARDED_FOR"])
{
if($pos=strpos($_SERVER["HTTP_X_FORWARDED_FOR"]," "))
{
echo "IP local: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],0,$pos)." - IP Pública: ".substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);
$hostlocal=substr($_SERVER["HTTP_X_FORWARDED_FOR"],$pos+1);
}else{
echo "IP Pública: ".$_SERVER["HTTP_X_FORWARDED_FOR"];
$hostlocal=$_SERVER["HTTP_X_FORWARDED_FOR"];
}
if($_SERVER["REMOTE_ADDR"])
echo " - Proxy: ".$_SERVER["REMOTE_ADDR"];
}else{
echo "IP Pública: ".$_SERVER["REMOTE_ADDR"];
$hostlocal=$_SERVER["REMOTE_ADDR"];
if($hostlocal!=$_SERVER["REMOTE_ADDR"])
echo " - Hostname: ".$hostlocal;
}
$hostname=gethostbyaddr($hostlocal);
if($hostlocal!=$hostname)
echo "<br>Hostname: ".$hostname;
?>
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #10 (permalink)  
Antiguo 14/02/2007, 11:54
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Cita:
haaaa empieza por alli.

pero recuerda que las ip tendrias que ser fijas y no dinamicas xD.

o no :O?
eso ya lo he contemplado en el formulario. Doy la opción de meter la IP, que tiene que ser fija, o un tick cuando es DHCP.


Tengo otro problema..... NO ENTIENDO NADA DEL CÓDIGO EN javascript!!!!

La verdad es que la parte de los número y el punto no lo veo por ningún sitio...

¿Me puedes dar alguna pista más????

Thanks
  #11 (permalink)  
Antiguo 14/02/2007, 12:00
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

pimero es para que cuando la persona que dijite la ip, solo pueda poner numeros y los punto

algo asi 120.023.036.012
para que mo tengas el drama de
akljf.oaiud877897

mira fijate bien el ejemplo que te mande.

le pones eso el textfield onKeyPress="return acceptNum(event)

esto hara que caundo escriva, solo sean numero o el punto.
pero debes poner el javascripts dentro de <head> </head>

ademas copia el ejemplo en una hoja en blanco para que veas como funciona
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #12 (permalink)  
Antiguo 14/02/2007, 13:00
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Gracias FNX_NET, pero como dije al principio del tema, no puedo utilizar javascript, lo necesito hacer en PHP... es requisito!!, pero gracias de todas formas.
  #13 (permalink)  
Antiguo 14/02/2007, 13:05
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

jajaaja que mala, pero vay a tener que hacer algo que evalue que sea un ip valida

creo que en internet hay esas cosas xD.

pero para eso estamo, no s ningun drama ayudar, para eso estamos xD
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #14 (permalink)  
Antiguo 14/02/2007, 13:14
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Pos mira, sorprendentemente, indagando por ahí, he conseguido hacer una funcioncilla, es muy simple, pero bueno, a mi me sirve para lo que quería

Código:
/*Esta función valida la dirección IP que se ha introducido
$ip: Se pasa como parámetro de entrada la dirección IP que se quiere comprobar.
$resp: Parámetro de salida. La función devuelve 0 si la IP es correcta, si no, devuelve 1.
*/
function var_validarIP ($ip)
{
	//$ip2 = long2ip(ip2long($ip));
	//$ip2 = ip2long($ip);
	$patron = '([0-9]{1,3})+.+([0-9]{1,3})+.+([0-9]{1,3})+.+([0-9]{1,3})';
	if (ereg($patron, $ip))
	{
		$resp = 0; //correcta
	}
	else
	{
		$resp = 1; //error
	}
	return $resp;
}
Con estas salidas:

ip: 127.23.44.44ip2: resp: 0
ip: dfgvdfgip2: resp: 1
ip: 34.56.44.4ip2: resp: 0
ip: 33ip2: resp: 1
ip: 192.168.56.a34ip2: resp: 0



Se admiten comentarios, dudas, sugerencias, .... CRITICas, jejeje

A ver si le es útil tb a alguien que yo he encontrado muchas cosas interesantes por el foro
Saludos a todos
  #15 (permalink)  
Antiguo 14/02/2007, 15:16
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

exacto expresiones regulares era la mejor opcion, felicidades por tu script ;)
  #16 (permalink)  
Antiguo 14/02/2007, 16:14
Avatar de irenuska**  
Fecha de Ingreso: noviembre-2006
Ubicación: A veces aquí y otras veces allí
Mensajes: 43
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Ahora creo que le añadiré una comprobación para que cada grupo sea menor que 256, así ya creo que se valida bastante, no?
  #17 (permalink)  
Antiguo 22/02/2007, 07:46
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Seguro que muy fácil!: Validación de dirección IP en un formulario

Cita:
Iniciado por dopon Ver Mensaje
exacto expresiones regulares era la mejor opcion, felicidades por tu script ;)
es que ella comenta en un post mas arriba que no puede usar scripts, ademas le deje un scripts para ellos xD
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:42.