Foros del Web » Programando para Internet » PHP » Zend »

¿Cómo guardar la IP del cliente?

Estas en el tema de ¿Cómo guardar la IP del cliente? en el foro de Zend en Foros del Web. Buenas, pues creo que mi duda se explica por si sola con el título del tema. No se como guardar con Zend la IP del ...
  #1 (permalink)  
Antiguo 16/05/2012, 10:38
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
¿Cómo guardar la IP del cliente?

Buenas, pues creo que mi duda se explica por si sola con el título del tema.

No se como guardar con Zend la IP del cliente.

He visto esta "issue" en el tracker de Zend Framework: http://framework.zend.com/issues/browse/ZF-7092

Y lo que entiendo es que se pedía que existiese un método para sacar la IP del cliente, y que lo tienen como resuelto, con lo cual se supone que se puede usar ese metodo de getClientIp() o algo así??? No me entero muy bien.

Espero que puedan ayudarme, un saludo y gracias.
  #2 (permalink)  
Antiguo 16/05/2012, 10:46
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: ¿Cómo guardar la IP del cliente?

El método existe y es parte de Zend_Controller_Request_Http. donde tienes el problema exactamente ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 16/05/2012, 10:58
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: ¿Cómo guardar la IP del cliente?

Gracias por responder masterpuppet.

El problema está en que estoy aprendiendo Zend Framework, y no se como usar el método.

Tengo un formulario para dar de alta a un usuario, y he puesto un campo en el formulario, de tipo Zend_Form_Element_Hidden y a ese campo le quiero dar el valor (setValue) de lo que devuelva ese método, o sea, la IP del usuario, para después guardarla en la base de datos.

Gracias.
  #4 (permalink)  
Antiguo 16/05/2012, 11:01
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: ¿Cómo guardar la IP del cliente?

Bueno, es algo sencillo, desde cualquier controller puedes hacer algo así:

Código PHP:
Ver original
  1. $clientIp = $this->getRequest()->getClientIp();

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 16/05/2012, 11:07
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: ¿Cómo guardar la IP del cliente?

Gracias masterpuppet, lo he hecho como me dices.

En la base de datos me guarda el valor ::1, pero supongo que eso será porque estoy en local, ¿no?
  #6 (permalink)  
Antiguo 15/06/2012, 10:36
 
Fecha de Ingreso: junio-2012
Ubicación: Colombia
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Mensaje Respuesta: ¿Cómo guardar la IP del cliente?

echo '<b>Hola: ' . $this->getRequest()->getClientIp() . '</b>';

esta belleza llamada desde un controller (ZF) funciona perfecto, para que más lineas de código, pero el bendito problema que me tiene liando es, que dentro de una red privada o que pasa por medio de un berriondo proxy, com carajos obtengo la verdadera IP publica, caso por ejemplo, si yo miro esta pagina http://cual-es-mi-ip-publica.com/ desde mi red pasada por proxy si puedo ver la bendita ip publica, pero si pongo esa linea que vemos arriba solo me captura el proxy o una ip local, como es posible por Dios desde PHP hacer esa magia de esas paginas he??????

SOLUCIONARLO POR FAVOR Y PUBLICARLO EN TODO0 EL MUNDO
  #7 (permalink)  
Antiguo 15/06/2012, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: ¿Cómo guardar la IP del cliente?

Eso es por una razón sencilla, sí tu servidor esta dentro de tu red local, no vas a poder ver la IP publica de ninguna forma, tienes que tener el servidor donde este tu código PHP fuera de tu red para entonces poder capturar la ip desde la que estas visitando.

Ten en cuenta que hay ciertos proxy que no forwardean la ip real por lo que siempre vas a capturar la IP del proxy.

Saludos.
  #8 (permalink)  
Antiguo 15/06/2012, 15:25
 
Fecha de Ingreso: junio-2012
Ubicación: Colombia
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: ¿Cómo guardar la IP del cliente?

Claro el servidor esta por fuera de la red, logico y allí esta el PHP y la programacion y demás claro, pero por que me toma la ip del tipo 192.168.1.1, ahora si habilito un programa llamado SecurityKiss, que lo que ahce es burlar el proxy y asignar otra ip publica diferetne ala real del equipo, si la muestra porq ue viola el proxy.

Pero el caso es como dije, la pagina que dice, cual-es-mi-ip.com viendola en mi equipo si me muestra la ip de mi equipo (estando en la red)

No se, epro me enrede mucho
la idea es, es posible optener la ip publica si o no? con PHP? sin temor de ese resultadod el 192.168.1.1
  #9 (permalink)  
Antiguo 15/06/2012, 16:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: ¿Cómo guardar la IP del cliente?

Sí te esta dando 192.168.1.1 es porque tu servidor esta todavía dentro de la red y solo ve la IP interna, una vez que sale de tu red es cuando puede ver la IP pública.

Saludos.
  #10 (permalink)  
Antiguo 15/06/2012, 16:57
 
Fecha de Ingreso: junio-2012
Ubicación: Colombia
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: ¿Cómo guardar la IP del cliente?

Entiendo, y que explciacion em puedes dar por favor al sigueinte scaso.

Cuando entro desde mi equipo (como vengo diciendo en la red de la empresa) a la pagina de cual-es-mi-ip.com y visualizo la ip publica 201.xxx.xxx.xxx por ejemplo y si accedo a la misma pagina desde otro equipo de la misma empresa o red, me marca otra ip publica del mismo orden 201.xxx.xxx.xxx diferente, claro().

Se supone que cuando navego a internet, la pagina llamada debe pasar por el proxy, ero aun asi veo mi ip real o publica, pero el usar la fucion phop, me mmuestra enc ualqueir da los equipos 192.168.1.1

Que al respecto, amigo ;)
  #11 (permalink)  
Antiguo 15/06/2012, 17:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: ¿Cómo guardar la IP del cliente?

Como te digo, mientras el servidor donde este Apache (o el WebServer que sea) y donde este PHP, este dentro de tu red, solo se va a transmitir la IP interna, no la pública.

Hasta que tengas que "salir" de tu red, es cuando las cosas cambian, y por eso puedes ver la IP "real".

Te invito a que leas sobre NAT, y la capa OCI, para que veas como es que se transmite la IP en el paquete y porque solo ves la IP interna desde adentro de la red, y solo se ve la pública desde fuera de la red.

Saludos.

Etiquetas: framework, framwork, ip, cliente
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 08:41.