¿Cómo puedo determinar la ubicación de un visitante a mi sitio web?

19

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?

JamesRyan
fuente
maxmind.com/app/ip-location
Christopher Schmidt
44
En su lugar, debe hacer esta pregunta en StackOverflow.com .
Jonas
77
Creo que siempre habrá preguntas cruzadas que serán apropiadas para ambos. Pero las respuestas aquí con una perspectiva SIG pueden ser diferentes a las respuestas allí con una perspectiva de programación.
JamesRyan

Respuestas:

12

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>
fmark
fuente
5 años después ... ¿Alguien puede actualizar esta respuesta? ¿Publicar una nueva respuesta?
Dror Atariah
5 años después, la mayoría de los sistemas geoides son inútiles porque no pueden ubicar a los usuarios móviles correctamente ...
Mike Szyndel
9

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).

Sean
fuente
1
+1 para HTML5. Siempre puede usar ambos: si la API de geolocalización falla, recurra a IP. Más soporte en el sitio web significa más presión sobre los proveedores de navegadores para que admitan mejores tecnologías.
naught101
Pero estamos hablando de "ubicación aproximada del visitante", por lo que esto puede no ser lo que desea. Un punto importante es que la geolocalización HTML5 mostrará un mensaje de confirmación de aspecto aterrador. Sí, la ubicación generalmente será mucho más exacta ... pero solo después de que el visitante acepte el aviso de confirmación.
Harry Wood
3

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.

James M
fuente
2

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.

TheSteve0
fuente
2

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 ...

julien
fuente
44
que me permitiera informe sobre los visitantes, pero no mi sastre contenido sobre la marcha por ubicación
JamesRyan
0

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.

API mundial
fuente
1
Gracias por su respuesta. ¿Notó que @FMark ya ha descrito este servicio en una respuesta anterior en este hilo?
whuber
no es una crítica sobre ipinfodb, pero tuve problemas antes con mi convertidor de moneda y la herramienta de api de moneda , traté de usar eso para determinar automáticamente la ubicación y podría darles una ubicación directa asociada con la moneda, pero S tenía un sitio con muchos problemas. días fuera de línea, o algún error de conexión o cuentos una gran cantidad de tiempo de carga que podría afectar su rendimiento de sitios y google no quiero que ...
jarauzes
Infodb parece genial, lo probé durante meses ... ¿tienen límite? Me refiero a los visitantes por día?
0

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/ )

Lucian
fuente