Código de PHP - IP Geolocation

Imágen de perfil

IP Geolocationgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(3)
Actualizado el 13 de Agosto del 2015 por txema (Creado el 19 de Enero del 2015)
2.716 visualizaciones desde el 19 de Enero del 2015. Una media de 28 por semana
Tras la captación de la IP del usuario mediante PHP, el código que se presenta utiliza los servicios geoPlugin haciendo uso de los datos de geolocalización bajo condición de aceptación de la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 Unported.

Utiliza la base de datos GeoLite de MaxMind cuyos créditos son necesarios publicar en cualquier desarrollo.

Se presenta adaptado con representación en mapa mostrado a través de Google Maps.

Dado que en local (http://localhost) la IP que nos muestra es ::1 , es necesario mostrar la página levantada en un hosting.

Requerimientos

Los créditos correspondientes derivados de la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 Unported sobre los servicios geoPlugin.

Google Maps API

IP Geolocation 2015.0
estrellaestrellaestrellaestrellaestrella(3)

Actualizado el 13 de Agosto del 2015 (Creado el 19 de Enero del 2015)gráfica de visualizaciones de la versión: IP Geolocation 2015.0
2.717 visualizaciones desde el 19 de Enero del 2015. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Ampliado con Código País y Código Continente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!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 en Google Maps</title>
<style type="text/css">
html,body{margin:0;padding:0;width:100%;height:100%;font-family:Trebuchet MS,verdana,arial}
#texto{text-align:center;padding:8%}
</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_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');
  } else {
    $IP = $_SERVER['REMOTE_ADDR'];
  }
$meta = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$IP));
?>
<script>
var map, geocoder;
function inicio() {
  var lat = document.getElementById('lat').value;
  var lng = document.getElementById('lng').value;
  var latlng = new google.maps.LatLng(lat, lng);
  var mapOptions = {
    zoom: 16,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById('mapa'), mapOptions);
  geocoder = new google.maps.Geocoder();
  // Función completa de Geocoding
  geocoder.geocode({
    'latLng': latlng
  }, function (results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      document.getElementById('lat').innerHTML = results[0].geometry.location.lat().toFixed(6);
      document.getElementById('lng').innerHTML = results[0].geometry.location.lng().toFixed(6);
      map.setCenter(results[0].geometry.location);
      document.getElementById('direccion').innerHTML = results[0].formatted_address;
      var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
      });
      infowindow = new google.maps.InfoWindow({
        content: results[0].formatted_address + '<br> Latitud: ' + results[0].geometry.location.lat().toFixed(6) + '<br> Longitud: ' + results[0].geometry.location.lng().toFixed(6)
      });
      infowindow.open(map, marker)
    }
	// Se detallan los diferentes tipos de error
	else {
      alert('Geocode no tuvo éxito por la siguiente razón: ' + status)
    }
  })
};
google.maps.event.addDomListener(window, 'load', inicio);
</script>
  </head>
  <body>
	<section id="texto">
	  <h3>Geolocalización de IP en Google Maps</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>
    <div id="mapa"></div>
  </body>
</html>



Comentarios sobre la versión: IP Geolocation 2015.0 (3)

Imágen de perfil
xve
13 de Agosto del 2015
estrellaestrellaestrellaestrellaestrella
Muy bueno Txema!!!!
Responder
Imágen de perfil
Daniel Gil
21 de Octubre del 2015
estrellaestrellaestrellaestrellaestrella
Hola, soy Daniel quisiera comunicarme con usted, este código es excelente y deseo saber si me puedes ayudar con un proyecto que tengo el cual incluye un código similar a este.

Gracias quedo atento a sus respuesta.
Responder
Imágen de perfil
txema
22 de Octubre del 2015
estrellaestrellaestrellaestrellaestrella
Hola Daniel:

Puedes contactar conmigo a través de mensaje privado o directamente a mi email que lo tienes en mi perfil de lawebdelprogramador (http://www.lawebdelprogramador.com/programadores/139301)
Responder

Comentar la versión: IP Geolocation 2015.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3011