Nueva pregunta

Pregunta:

Fecha: 12-08-2015 20:22:36 (En Español)

[APORTE] Geolocalización IP[Resuelta]

Adjunto se muestra el código que permite ver la IP sobre base de datos GeoLite de MaxMind.

En el mismo se presenta el código para ayudar a obtener la IP real ante usuarios que utlizan servidores proxy o una dirección IP dinámica (thephpcode)
Si en este punto conocen alguna mejora de código, les agradecería lo hagan saber.

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Geolocalización de IP">
    <title>Geolocalización de IP</title>
<style>
html,body{margin:0;padding:0;width:100%;height:100%;font-family:Trebuchet MS,verdana,arial;}
section{text-align:center;padding:2%;}
</style>
<?php
$IP = '';
  if (getenv('HTTP_CLIENT_IP')) {
    $IP =getenv('HTTP_CLIENT_IP');
  } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
    $IP =getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_X_FORWARDED')) {
    $IP =getenv('HTTP_X_FORWARDED');
  } elseif (getenv('HTTP_VIA')) {
    $IP = getenv('HTTP_VIA');
  } elseif (getenv('HTTP_USERAGENT_VIA')) {
    $IP = getenv('HTTP_USERAGENT_VIA');
  } elseif (getenv('HTTP_X_CLUSTER_CLIENT_IP')) {
    $IP =getenv('HTTP_X_CLUSTER_CLIENT_IP');
  } elseif (getenv('HTTP_FORWARDED_FOR')) {
    $IP =getenv('HTTP_FORWARDED_FOR');
  } elseif (getenv('HTTP_FORWARDED')) {
    $IP = getenv('HTTP_FORWARDED');
  } elseif (getenv('HTTP_PROXY_CONNECTION')) {
    $IP = getenv('HTTP_PROXY_CONNECTION');
  } elseif (getenv('HTTP_XPROXY_CONNECTION')) {
    $IP = getenv('HTTP_XPROXY_CONNECTION');
  } elseif (getenv('HTTP_PC_REMOTE_ADDR')) {
    $IP = getenv('HTTP_PC_REMOTE_ADDR');
  } else {
    $IP = $_SERVER['REMOTE_ADDR'];
  }
$meta = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$IP));
?>
  </head>
  <body>
	<section>
	  <h3>Geolocalización de IP sobre base de datos GeoLite de <a href="http://www.maxmind.com" target="_blank">MaxMind</a></h3>
	  <h3><a href="http://www.geoplugin.com/geolocation/" target="_new">IP Geolocation</a> por <a href="http://www.geoplugin.com/" target="_new">geoPlugin</a></h3>
	  geoPlugin utiliza la base de datos GeoLite de MaxMind disponible en <a href="http://www.maxmind.com" target="_blank">http://www.maxmind.com</a>.
	  <br>
	  El uso de los servicios geoPlugin haciendo uso de los datos de geolocalización está bajo condición de aceptación de la licencia <a rel="nofollow" title="http://creativecommons.org/licenses/by-sa/3.0/" target="_new" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 Unported</a>.
	  <br>
      <br>
      IP: <span style="color:#FF00AA;"><?php echo $IP; ?></span>
      <br>
      Latitud: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_latitude']; ?></span>
	  <input id="lat" type="hidden" value="<?php echo $meta['geoplugin_latitude']; ?>">
      <br>
      Longitud: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_longitude']; ?></span>
	  <input id="lng" type="hidden" value="<?php echo $meta['geoplugin_longitude']; ?>">
      <br>
      Ciudad: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_city']; ?></span>
      <br>
      Región: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_region']; ?></span>
      <br>
      País: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_countryName']; ?></span>
      <br>
      Código País: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_countryCode']; ?></span>
      <br>
      Código Continente: <span style="color:#FF00AA;"><?php echo $meta['geoplugin_continentCode']; ?></span>
    </section>
  </body>
</html>


NOTA: es necesario mostrar la página levantada en un hosting dado que en local (http://localhost) la IP que nos muestra es ::1 y carece de lectura sobre la base de datos.

Pueden verlo sobre localización en mapa en geolocation-IP
Etiquetas: Aporte - Geolocalización - IPv4 - IPv6 Votos: 3 - Respuestas: 3 - Vistas: 25 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 16-08-2015 18:38:42 Artzain Haritz:
    Tengo alguna duda, que te pasare de inmediato, ya que en mi caso, Geolocaliza al lugar donde esta la antena que retrasmite y no al domicilio exacto de donde se encuentra la IP ....
      Votos: 2 - Link respuesta
     
  • Fecha: 16-08-2015 22:46:36 Así es, Daniel.

    Gracias por la pregunta. Merece una explicación.

    Con Geolocalización IP recoges las coordenadas del emisor de la señal que recibes, no del receptor (tu domicilio o tu ubicación real -con WIFI, teléfono móvil, o tu antena receptora si el ordenador está conectado por cable-).

    Esto último corresponde a la geolocalización de usuario (W3C) que lo desarrollo en un aporte paralelo y que requiere el permiso del usuario para ser geolocalizado.

    ¿Por qué? Me temo que llega de la mano de la privacidad del usuario. La publicación/actualización de IPs corresponde a la ubicación de los proveedores (antenas) que emiten la señal, pero han de preservar la privacidad de sus clientes.

    ¿Su utilidad? Generalmente un usuario malintencionado no quiere identificarse (no dará permisos para ser geolocalizado). Si implementamos de forma oculta o visible el registro de las IPs que nos visitan, podremos tenerlo registrado por su IP. Si su conducta llega a ser delictiva, corresponderá a la justicia reclamar al proveedor la identidad del usuario receptor de la señal (es importante implementar la fecha ya que por lo general manejamos IPs dinámicas).

    (Creo haberme explicado).
      Votos: 4 - Link respuesta
     
  • Fecha: 25-05-2017 20:41:51 Esto es excelente. ¡Buen aporte!.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión