Si deseo proporcionar un sitio web con el contenido apropiado para la ubicación, ¿qué formas puedo utilizar para encontrar la ubicación aproximada del visitante utilizando su IP o información de encabezado?
Si deseo proporcionar un sitio web con el contenido apropiado para la ubicación, ¿qué formas puedo utilizar para encontrar la ubicación aproximada del visitante utilizando su IP o información de encabezado?
En primer lugar, debe saber que la precisión de estos servicios es, y siempre será, baja.
MaxMind Geolite city es gratuita . Si no es lo suficientemente bueno, aparentemente puede actualizar a una versión de pago más precisa. No puedo hablar por la calidad de la versión de pago, ya que nunca la he usado.
Si le gusta su SQL, descargue el CSV versión . Cárguelo en la base de datos de su elección y realice una consulta.
La opción más rápida y eficiente en espacio es descargar la versión del archivo binario blob de la misma base de datos, y luego use una API específica del idioma del mismo sitio web para consultarla.
Alternativamente, he encontrado que ipinfodb.com es útil. La consulta es por medio de HTTP GET. Por ejemplo, para geolocalizar stackoverflow.com intente:
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
Esto devolverá un archivo XML que contiene latitud y longitud, que tiene el siguiente aspecto:
<Response>
<Ip>69.59.196.211</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>41</RegionCode>
<RegionName>Oregon</RegionName>
<City>Corvallis</City>
<ZipPostalCode>97333</ZipPostalCode>
<Latitude>44.4698</Latitude>
<Longitude>-123.343</Longitude>
</Response>
La ubicación que puede inferir de IP no es muy confiable (es decir, a veces funciona un poco).
Si desea una ubicación confiable, considere la API de geolocalización que forma parte de HTML5 . Sin embargo, tenga en cuenta que no todos los navegadores web lo admiten (todavía).
Una opción que se enfoca en el soporte móvil, aunque también funciona bien en la mayoría de los navegadores de escritorio (excepto por IE en mi experiencia), es Geo-Location-Javascript paquete que envuelve la API de GeoLocation HTML5 que Sean mencionó. Encontré que la compatibilidad con el navegador móvil es bastante deficiente para la API HTML5 (aunque no es sorprendente, ya que todavía está en borrador), por eso me fui con este paquete.
Los resultados de los dispositivos móviles son bastante buenos en las conexiones de celulares y WiFi (y GPS si el dispositivo lo tiene). Los navegadores de escritorio informan una posición bastante general comparada con otros servicios.
Quova enlace también tiene un servicio. Les hablé ayer en GeoLoco. Según ellos (así que tómalo con un grano de sal) dicen que son mucho mejores internacionalmente que MaxMind. Son casi iguales en América del Norte.
Tenga en cuenta que para los teléfonos móviles, la IP probablemente se asignará a donde el Operador tenga su puerta de entrada a Internet. También puede intentar usar - enlace si está apuntando a teléfonos móviles.
Google analytics proporciona mapas básicos y estadísticas sobre la ubicación de su visitante. Por supuesto, debes compartir esta información con Google ...
ipinfodb.com es bueno, pero actualmente están sin conexión :(
Lo estoy usando para mi api . Es genial para mi clima, pero no sé ahora que ha estado desconectado desde ayer.
Si desea proporcionarles contenido o anuncios según su ubicación geográfica, no puede confiar en tomar los datos de ubicación del dispositivo. Incluso si están utilizando teléfonos móviles, existe una alta posibilidad de que tengan el GPS y el wifi desactivados, y tienen que dar su consentimiento para compartir la ubicación.
Es como: "Oye, ¿puedes compartir tu ubicación conmigo para poder ofrecerte el contenido y los anuncios que creo que están más relacionados con tu ubicación geográfica?" Respuesta: "¡No! Dame el mejor contenido y los anuncios que tienes por ahí"
La única forma de encontrar la ubicación sin pedirles permiso es a través de su dirección IP. Puede instalar una base de datos en su propio servidor y consultarla para encontrar la ubicación de una dirección IP o usar una API externa que tenga que consultar y obtener los resultados. Estoy usando ipgp geolocation api y estoy trabajando muy bien. ( enlace )
Lea otras preguntas en las etiquetas mobile geolocation