2012-01-25 13 views
14

Estoy usando Pyramid framework y quiero acceder a la dirección IP desde la cual se originó la solicitud. Supongo que está en el objeto de solicitud (pasado a cada función de vista) en algún lugar, pero no puedo encontrar documentación que me diga dónde está.Obteniendo la dirección IP de la solicitud con Pyramid

+0

valdría la pena ponerse cómodo con webob. http://docs.webob.org/en/latest/index.html –

Respuesta

22

Está en request.remote_addr.

Lo puede encontrar en la documentación pyramid.request.

+0

Muchas gracias. Lo vi en la documentación, pero no me di cuenta de que "remote_addr" significaba "dirección IP". ¿Por qué no simplemente lo llaman "dirección IP"? –

+4

Porque "dirección IP" es ambigua: ¿es la dirección del servidor, la dirección del cliente u otra cosa? "remote_addr" es la dirección del lado remoto, es decir, el cliente. –

4

O puede utilizar request.environ['REMOTE_ADDR']

7

que puede utilizar: request.client_addr.

+1

"Es posible que los agentes de usuario pongan la IP de otra persona o cualquier cadena en HTTP_X_FORWARDED_FOR, ya que es un encabezado HTTP normal. Los proxies de reenvío también pueden proporcionar valores incorrectos (direcciones IP privadas, etc.). No se puede confiar" ciegamente "en el resultado de este método para proporcionarle datos válidos a menos que esté seguro de que HTTP_X_FORWARDED_FOR tiene los valores correctos. El servidor WSGI debe estar detrás de un proxy confiable para que esto sea verdadero ". Así que si entiendo esto correctamente, debe usar 'remote_addr' a menos que esté detrás de un proxy de confianza que establezca un HTTP_X_FORWARDED_FOR correcto. –

+0

@YannDinendal: Sí, tienes razón. Lo siento si no aclare este punto. –

Cuestiones relacionadas