Si deseo proporcionar un sitio web con contenido apropiado para la ubicación, ¿qué formas puedo usar para encontrar la ubicación aproximada del visitante utilizando su IP o información de encabezado?
Si deseo proporcionar un sitio web con contenido apropiado para la ubicación, ¿qué formas puedo usar para encontrar la ubicación aproximada del visitante utilizando su IP o información de encabezado?
Respuestas:
En primer lugar, debe saber que la precisión de estos servicios es, y siempre será, baja.
La ciudad de MaxMind Geolite es gratis . Si no es lo suficientemente bueno, aparentemente puede actualizar a una versión paga más precisa. No puedo hablar por la calidad de la versión paga, ya que nunca la he usado.
Si le gusta su SQL, descargue la versión CSV . Cárguelo en la base de datos de su elección y consulte.
La opción más rápida y que ahorra espacio es descargar la versión de blob binario de archivo de la misma base de datos, y luego usar una API específica del idioma del mismo sitio web para consultarla.
Alternativamente, he encontrado que ipinfodb.com es útil. La consulta es por simple 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 se ve así:
<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).
Si desea una ubicación confiable, considere la API de geolocalización que es parte de HTML5 . Sin embargo, tenga en cuenta que no todos los navegadores web lo admiten (todavía).
Una opción que se centra en el soporte móvil, aunque también funciona bien en la mayoría de los navegadores de escritorio (a excepción de IE en mi experiencia), es el paquete Geo-Location-Javascript que envuelve la API HTML5 GeoLocation mencionada por Sean. Encontré que el soporte del navegador móvil es bastante pobre para la API HTML5 (sin embargo, no es sorprendente, ya que todavía está en borrador), por eso elegí este paquete.
Los resultados de los dispositivos móviles son bastante buenos sobre las conexiones celulares y WiFi (y GPS si el dispositivo lo tiene). Los navegadores de escritorio informan una posición bastante tosca comparable a otros servicios.
Puede usar esta url y pasarle una dirección IP. http://api.hostip.info/get_html.php?ip=84.32.32.44
Quova http://www.quova.com/ también tiene un servicio. Ayer hablé con ellos 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 teléfonos móviles, la IP probablemente se asignará a cualquier lugar donde el operador tenga su puerta de enlace a Internet. También puede intentar usar - http://www.loc-aid.com/ si está apuntando a teléfonos móviles.
Google Analytics proporciona mapas básicos y estadísticas sobre la ubicación de sus visitantes. Por supuesto, debes compartir esta información con Google ...
ipinfodb.com es bueno pero actualmente están desconectados :(
Estoy usando eso para mi api . Es genial para mi clima, pero no sé ahora que ha estado desconectado desde ayer.
Si desea proporcionarles contenido o anuncios basados en su ubicación geográfica, no puede confiar en tomar los datos de ubicación del dispositivo. Incluso si están en teléfonos móviles, existe una gran posibilidad de que tengan GPS y wifi apagados, y que tengan que dar su consentimiento para compartir la ubicación.
Es como: "Oye, ¿puedes compartir tu ubicación conmigo para que pueda ofrecerte contenido y 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"
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 utilizar una API externa que debe consultar y obtener los resultados. Estoy usando la API de geolocalización ipgp y estoy trabajando muy bien. ( http://www.ipgp.net/ip-address-geolocation-api/ )