BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
Bugs/Devel

Detección de IP real tras proxy

Frankie2004

Si seguís algo las conversaciones de Ya.com, estaréis al tanto de que la migración de Nuria a Rima ha hecho pasar a la gente por el proxy-cache.

Sin embargo, parece ser que a algunos les están empezando a migrar a un conjunto de IPs en Rima que no pasan por los infames proxys.

Según KirO, los moderadores pueden ver la IP real del mensaje, pero solo en ocasiones. Si el script PHP que está siendo utilidado es el que Piezas diseñó en su día, entonces solo tiene en cuenta la cabecera HTTP_X_FORWARDED_FOR (cuando existe HTTP_FORWARDED) y no HTTP_CLIENT_IP (común cuando aparece HTTP_VIA), que es otra posibilidad.

Os sería útil comprobarlo para poder tener mejor control.

Saludos.

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
Raulito

mmmm,

es decir, hay algunos que no llevan el forwarded for, en ese caso, client_ip es la ip real del usuario?

actualmente, el sistema busca un forwarded for, si no lo hay, pilla el remote_addr

jcomas

El código de detectar la IP real es de Josh, yo lo integré en la web, habilité los campos en las tablas para guardar la ip real. Lo probamos bastante, y creo que está todo correcto. Las modificaciones las puse en los foros, y Raulito debe haber hecho las modificaciones para los artículos.
Mucho cuidado si se va a modificar, puede que luego se estropee lo otro.

🗨️ 17
Frankie2004

Googleando, encontré este enlace, no sé si es el código sobre el que os basáis:
(link roto)

Lo que sí estoy completamente seguro es que HTTP_REMOTE_ADDRESS es la IP del proxy (cuando hay uno, obviamente) y que la IP real puede estar en HTTP_X_FORWARDED_FOR y también en HTTP_CLIENT_IP.

Comprobad el test de variables de entorno en: all-nettools.com/toolbox/network-tools.htm

🗨️ 16
Raulito

efectivamente.

Yo lo miraría, pero es que no tengo proxy caché de telefonica :P

en tu caso, no hay forwarded_for, detecta la ip real como la de tu proxy.
entonces, según dices, tu ip real deberia estar en el client_ip?

🗨️ 13
Frankie2004

Yo no tenía proxy hasta hace 1 semana ... en fin.

Sí, en mi caso aparece en ambas variables, aunque curiosamente para salir hacia sitios de España y para salir a sitios de fuera, yo ya he catalogado mi salida a través de 3 diferentes, no sé si va dinámicamente o si están asignados a zonas delimitadas, pero sí, HTTP_CLIENT_IP es la otra posibilidad.

🗨️ 12
Raulito
Raulito
🗨️ 11
jcomas
jcomas
🗨️ 10
Raulito
Raulito
🗨️ 9
Frankie2004
Frankie2004
🗨️ 8
jcomas
jcomas
🗨️ 7
Frankie2004
Frankie2004
🗨️ 1
jcomas
jcomas
Luke
Luke
🗨️ 4
jcomas
jcomas
Josh
Josh
🗨️ 1
Luke
Luke
jcomas

No es el mismo código, pero es muy similar al concepto de Piezas.

Josh

El tema es que HTTP_REMOTE_ADDRESS lo saca el server de los headers del paquete TCP y HTTP_X_FORWARDED_FOR y HTTP_CLIENT_IP son headers http que envia el host remoto al hacer la petición por lo que es muy facil falsearlos.

KirO

Otra solución ... sería más complicado pero creo que evitaría TODOS los proxys (incluso de los trolls) digo CREO.

Por qué no se reciben los formularios a través de otro puerto que no sea el 80?...

Salu2!!

Luke

REMOTE_ADDR: 80.58.38.107
HTTP_X_FORWARDED_FOR: 83.49.121.196
HTTP_CLIENT_IP: 83.49.121.196

Y en los foros me pone IP Real: 80.58.38.107

(esta semana estoy usando un ADSL de telefónica)

🗨️ 15
Raulito

pon un post en devel si no te importa :)

🗨️ 7
Luke

hecho

🗨️ 6
Raulito

a ver ahora :)

🗨️ 5
Luke
Luke
🗨️ 4
Raulito
Raulito
🗨️ 3
Luke
Luke
🗨️ 2
Raulito
Raulito
🗨️ 1
Luke
Luke
Raulito

prueba ahora

Luke

Me sale simplemente "IP:"

🗨️ 4
Raulito

mira el mail que te acabo de enviar

Raulito

pon un post :P

🗨️ 2
Luke
Luke
🗨️ 1
Raulito

Ya está arreglado, gracias a la ayuda de Luke he dado con el problema.

El tema es que cuando hay un forwarded for hace una comprobación de los rangos reservados por IANA(ni idea de porque).

iana.org/assignments/ipv4-address-space/…-space.xhtml

La cosa es que el que sacó los rangos, supongo que Josh por lo que dice jcomas, puso como reservado el rango 82.0.0.0-95.0.0.0, y el 82.0.0.0 se comenzó a usar a finales de 2002 como se puede ver en la página. Por eso, aquellas personas que tienen una IP 83.* como Luke le decia que era una ip reservada y no la sacaba bien :)

Estoy esperando a que MaX o otra persona suba el funcionesgenericas.php del svn.

🗨️ 1
Josh

curioso XD

ya esta subida