Estoy tratando de rastrear las direcciones IP de los visitantes. Cuando utilizo $_SERVER["REMOTE_ADDR"]
, obtengo la dirección IP del servidor en lugar de la del visitante. Intenté esto en varias máquinas en varias ubicaciones y todas dieron como resultado la misma IP. ¿Hay alguna configuración de PHP/servidor que podría estar afectando esto?
Respuesta
REMOTE_ADDR
no se puede confiar.
De todos modos, trate
$ipAddress = $_SERVER['REMOTE_ADDR'];
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
$ipAddress = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}
Editar: Además, ¿enrutador de su servidor ha activado el reenvío de puertos? Es posible que esté jugando con los paquetes.
Utilicé esta idea y encontré un error de "estándares estrictos" sobre pasar por referencia. La solución fue explotar primero en una variable.ex: '$ explotado = explotar (',' $ _SERVER ['HTTP_X_FORWARDED_FOR']); $ ipAddress = array_pop ($ explotado); ' – ndasusers
Tenga en cuenta el hecho de que HTTP_X_FORWARDED_FOR se puede falsificar fácilmente – Tosh
¿qué tal https? – siniradam
$_SERVER['REMOTE_ADDR']
indica la dirección IP desde la que se envió la solicitud al servidor web. Esta suele ser la dirección del visitante, pero en su caso, parece que hay algún tipo de proxy sentado justo antes del servidor web que intercepta las solicitudes, por lo tanto, al servidor web parece que las solicitudes proceden de allí.
He desarrollado un LIKE SYSTEM donde obtengo IP real de los usuarios. Ahora, estoy enfrentando un problema. Estoy conectado a la conexión wi-fi a la casa. Cuando hago clic en el botón LIKE en la computadora portátil, funciona. Cuando reviso el mismo en otro navegador, funciona. Pero, cuando abro el sitio en mi móvil, entonces dos IP se registran en mi base de datos. Uno es el enrutador IP y el otro es la IP del móvil. Pero, la IP móvil cambia cada pocos segundos. Entonces, mi sistema piensa que es una persona diferente y cuenta el voto de la misma persona que otra persona. –
Creo que generalmente se acepta que usar una dirección IP para cualquier tipo de identificación de usuarios es una muy mala idea, ya que hay muchas maneras en que la dirección IP será incorrecta, cambiada o duplicada. Encuentra otro mecanismo Gracias por su respuesta, @KalpeshSingh –
. Encontraré una mejor solución pronto. –
Al usar $ _SERVER ["REMOTE_ADDR"], obtengo la dirección IP del servidor en lugar de la del visitante.
Entonces algo está mal, o es extraño, con su configuración.
¿Está utilizando algún tipo de proxy inverso? En ese caso, la sugerencia de @simshaun puede funcionar.
¿Tiene algo más fuera de lo común en la configuración de su servidor web?
¿Puede mostrar el código PHP que está utilizando?
¿Puede mostrar cómo se ve la dirección? ¿Es local, o una dirección de Internet?
No busque más direcciones IP no configuradas en el encabezado esperado. Eso sí, el siguiente para inspeccionar todo el variables de servidor y averiguar cuál es el adecuado para su caso:
print_r($_SERVER);
encontré lo que estaba buscando como estaba: HTTP_X_REAL_IP: json_encode ($ _ SERVER) <- si necesita iniciar sesión –
Sustitución:
$_SERVER["REMOTE_ADDR"];
Con:
$_SERVER["HTTP_X_REAL_IP"];
trabajado para mí.
- 1. $ _SERVER ['REMOTE_ADDR'] que no da la dirección IP correcta
- 2. ¿Por qué ServerVariable ["REMOTE_ADDR"] devuelve la IP del servidor?
- 3. ¿es necesario validar $ _SERVER ['REMOTE_ADDR']?
- 4. Notación IPV6 de $ _SERVER ['REMOTE_ADDR']
- 5. ¿Es seguro confiar $ _SERVER ['REMOTE_ADDR']?
- 6. Obtener la dirección IP del visitante después de enviar un formulario AJAX
- 7. Prevención de suplantación de IP
- 8. Dirección IP "Basura" con dos puntos en $ _SERVER ['REMOTE_ADDR'] para algunos clientes
- 9. PHP $ _SERVER ['REMOTE_ADDR'] muestra IPv6
- 10. php/ajax REMOTE_ADDR configurado como IP del adaptador de red falso
- 11. Dirección IP inyección SQL
- 12. ¿Está $ _SERVER ['REMOTE_ADDR'] siempre isset()?
- 13. UserHostAddress da direcciones IP incorrectas
- 14. Fiabilidad de PHP $ _SERVER [ 'REMOTE_ADDR']
- 15. ¿Cuán exacto es GeoIP y $ _SERVER ['REMOTE_ADDR']?
- 16. función para obtener la dirección IP del usuario
- 17. Recuperar nombre de dominio en lugar de IP
- 18. ¿Por qué request.env ['REMOTE_ADDR'] devuelve dos direcciones IP?
- 19. iPhone Socket TCP/IP del servidor/cliente
- 20. ¿Diferentes navegadores, direcciones IP diferentes?
- 21. ¿Cómo obtener la dirección IP del servidor?
- 22. Simplemente encontrar la dirección IP del servidor de
- 23. Dirección IP de la máquina en PHP da :: 1 pero ¿por qué?
- 24. ¿Puede Javascript saber su IP?
- 25. Scala Play Framework obteniendo la dirección IP del usuario
- 26. Técnicas de detección de ubicación para direcciones IP
- 27. ¿Cómo recupero el ISP del visitante a través de PHP?
- 28. Detección de la dirección IP del cliente y del servidor
- 29. ¿Cómo obtengo la dirección IP local del servidor usando PHP?
- 30. Bloque de IP específico de mi sitio web en PHP
¿Nos puede vincular con el sitio para confirmar? ¿También ha verificado los valores (SI ESTÁ PRESENTE) de '$ _SERVER ['HTTP_CLIENT_IP']' y '$ _SERVER ['HTTP_X_FORWARDED_FOR']'? – Dereleased
Sí, lo intenté. Voy a seguir adelante y preguntar a los administradores de Unix cuál podría ser el problema. No es un problema en ninguno de nuestros otros servidores. – Lincecum
Esto puede ser una configuración incorrecta del servidor web o algún tipo de proxy en el camino. El misterio podría resolverse si descubres quién es el IP :) – Vatev