• Sábado 20 de Abril de 2024, 10:53

Autor Tema:  necesito una mano en mi SHOP, no me guarda bien la ip  (Leído 4439 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
necesito una mano en mi SHOP, no me guarda bien la ip
« en: Jueves 26 de Noviembre de 2009, 17:53 »
0
Hola amigos, me gustaria que alguien me ayudara con este problema, quiero que me guarde la ip del cliente comprador de mi shop, pero tengo un problema, en mi base de datos, me guarda esta ip 172.23.4.166(no tendria que guardarme esta ip), pero si la hago desde otro ordenador dentro de la oficina me guarda 172.23.4.161..es decir esas ip's no existen, mi codigo es el siguiente:


<?php echo
      HEADING_IPRECORDED_1;
      $ip_iprecorded = YOUR_IP_IPRECORDED;
      $isp_iprecorded = YOUR_ISP_IPRECORDED;
       $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
      $client = gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
      $str = preg_split("/./", $client);
      $i = count($str);
      $x = $i - 1;
      $n = $i - 2;
      $isp = $str[$n] . "." . $str[$x];
?>

<?php echo "
<div><small><B><font color='blue'>$ip_iprecorded: $ip
<Br>$isp_iprecorded: $isp</B></font><Br><Br></small>";
?>

y esto me imprime por pantalla:

YOUR_IP_IPRECORDED: 172.23.4.166
YOUR_ISP_IPRECORDED: 4.166

esa ip no existe..verdad? me tendria que dar mi ip que es 84...etc...etc

Alguien me puede decir que hago mal?

un saludo, espero respuesta.
Gracias.

System@32

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: necesito una mano en mi SHOP, no me guarda bien la ip
« Respuesta #1 en: Jueves 26 de Noviembre de 2009, 22:48 »
0
Si el script esta en hosting fuera de tu empresa, puede que sea por causa de algun proxy... y si lo tienes dentro de tu empresa puede que sea alguna IP interna... eso es probarlo y ver causas...

Porcierto, en lugar de
Código: PHP
  1.  
  2. $HTTP_SERVER_VARS["REMOTE_ADDR"];
  3.  
  4.  

usa
Código: PHP
  1.  
  2. $_SERVER['REMOTE_ADDR']
  3.  
  4.  

y por si hay algun proxy, aunque los proxys de hoy ocultan muy bien la IP original...
Código: PHP
  1.  
  2. $_SERVER['HTTP_X_FORWARDED_FOR']
  3.  
  4.  

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: necesito una mano en mi SHOP, no me guarda bien la ip
« Respuesta #2 en: Domingo 29 de Noviembre de 2009, 02:39 »
0
Justo como te ha dicho System@32

yo uso sete metodo


Código: PHP
  1. $IP=getenv("HTTP_X_FORWARDED_FOR")? getenv("HTTP_X_FORWARDED_FOR"): getenv("REMOTE_ADDR");
  2.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: necesito una mano en mi SHOP, no me guarda bien la ip
« Respuesta #3 en: Domingo 29 de Noviembre de 2009, 15:20 »
0
Muchisimias gracias...de la forma que me dijisteis lo solucione....muchisimas gracias....
Un saludo

th3r0rn

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Re: necesito una mano en mi SHOP, no me guarda bien la ip
« Respuesta #4 en: Martes 8 de Diciembre de 2009, 09:36 »
0
Código: PHP
  1. <?
  2.  
  3.   function obtenerIPCliente() {
  4.  
  5. /* En la variable $ip se almacenará la dirección del cliente. */
  6.  
  7.     $ip = 0;
  8.  
  9. /* Si la variable $_SERVER['HTTP_CLIENT_IP'] tiene algún contenido, se asigna a la variable $ip. */
  10.  
  11.     if (!empty($_SERVER['HTTP_CLIENT_IP'])) $ip = $_SERVER['HTTP_CLIENT_IP'];
  12.  
  13. /* Si la variable $_SERVER['HTTP_X_FORWARDED_FOR'] tiene algún contenido, se asigna a la variable $ip.
  14.  
  15. En ese caso debe separarse la IP pública del cliente de las obtenidas a través de posibles redes locales. */
  16.  
  17.     if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  18.  
  19. /* Se abre la matriz de IP's obtenidas de $_SERVER['HTTP_X_FORWARDED_FOR']. */
  20.  
  21.       $ListaDeip = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
  22.  
  23. /* Si ya hay contenido en $ip, se añade a la matriz. */
  24.  
  25.       if ($ip) {
  26.  
  27.         array_unshift($ListaDeip, $ip);
  28.  
  29.         $ip = 0;
  30.  
  31.       }
  32.  
  33. /* Se eliminan IP's privadas, procedentes de posibles redes locales, así como la dirección de bucle local.
  34.  
  35. Cuando se encuentra una IP pública (externa) se devuelve como resultado de la función. */
  36.  
  37.       foreach ($ListaDeip as $direccion) if (!eregi("^(192.168|172.16|10|224|240|127|0).", $direccion)) return $direccion;
  38.  
  39.     }
  40.  
  41. /* Si no había contenido en $_SERVER['HTTP_X_FORWARDED_FOR'] se devuelve la IP obtenida mediante $_SERVER['REMOTE_ADDR']. */
  42.  
  43.     return $ip ? $ip : $_SERVER['REMOTE_ADDR'];
  44.  
  45.   }
  46.  
  47. ?>
  48.