Script en php no registra la IP del visitante

Hola,

Tengo un script en php que registra en un archivo.txt las IP del visitante, y las de Cloudflare.
Este script funciona bien en un dominio que esta en Cloudflare.

Hace una semana agregue un nuevo dominio a Cloudflare, y el mismo script en php mencionado anteriormente, no me registra la IP del visitante, solo me registra la IP de Cloudflare.

Cual es la razon por la cual el script en php funciona bien en un dominio, pero en el otro dominio no funciona ?

Gracias.

Es posible que el dominio en donde no funciona no tenga habilitada la extensión del servidor web necesaria para que tome la IP del encabezado HTTP correcto o también puede suceder que sí tenga la extensión pero no tenga cargadas las IPs de Cloudflare y entonces no reconoce que Cloudflare es Cloudflare. Utiliza phpinfo() para ver los encabezados enviados por Cloudflare al web server de tu dominio.

1 Like

Cual es el nombre de la extensión ?

Si no utilizo Cloudflare, el script en php me registra correctamente las IP del visitante.
Pero con Cloudflare tanto IP, como IProxy me arroja la misma IP de Cloudflare.

Eso depende del servidor web que use tu sitio web. Si usa Apache es mod_remoteip.

El web server debe tener configuradas las direcciones IP de Cloudflare para poder reconocer cuando una petición viene por allí y usar la dirección IP indicada en el encabezado CF-Connecting-IP como la dirección del visitante (en lugar de la dirección de Cloudflare). Para más info te sugiero visitar:

https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs

1 Like

Ese articulo ya lo había leído. Sin embargo, en localhost sin necesidad de activar esa extensión, y hacer otros ajustes, con los scripts en php logro registrar las 2 IP (La del visitante y la de Cloudflare).

Pero este dominio lo tengo apuntando a un servidor de byet-host. No se si eso tendrá algo que ver, aunque creería que no, ya que si no utilizo Cloudflare, los scrip funcionan bien.

Contacta a tu web host para solicitar ayuda para que ellos lo resuelvan.

1 Like

Es un host gratuito, y no dan soporte, pero no creo que sea problema del host, ya que sin Cloudflare los scripts funcionan bien en ese host. debe ser algo en Cloudflare.

No, no es un problema de Cloudflare. Es un problema de un manejo incorrecto de la información del lado del servidor web. Como tu web server no está configurado correctamente para trabajar con Cloudflare, si quieres obtener la IP del visitante real en PHP entonces debes leer la variable

$_SERVER["HTTP_CF_CONNECTING_IP"]

en lugar de

$_SERVER['REMOTE_ADDR']
1 Like

Ajuste en el codigo php esa linea $_SERVER[“HTTP_CF_CONNECTING_IP”]
Con ese ajuste ya logro registrar las 2 ip. La de Cloudflare, y la del visitante.

Pero la duda, es por que con el otro dominio sin incluir esa linea, si me registra las 2 IP ?

Porque el otro dominio seguramente corre en otro servidor con una configuración que correctamente reconoce a Cloudflare y entonces obtiene la dirección del encabezado HTTP CF-Connecting-IP.

1 Like

Gracias por tu ayuda. Con esto doy por solucionado el tema.

Un saludo.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.