2009-02-26 21 views
6

Necesito una manera consistente y fiable para determinar la ubicación (estado/provincia, país, etc.) de un equipo que visita mi sitio web, utilizando cualquiera de los siguientes:¿Cómo puedo determinar con precisión la ubicación de un visitante en mi sitio web?

  • PHP
  • JavaScript
  • MySQL
  • Cualquier servicio web
  • Algo en lo que no he pensado?

Estoy am no en busca de un programa de estadísticas de 3 ª parte bloqueada de salida tales como Google Analytics. Ya está en uso y hace cosas increíbles, sin embargo, necesito acceso de nivel de código a la información.

La solución ideal debería permitirme proporcionar cualquier información que se requiera (como una dirección IP) y obtener con precisión tanta información como pueda sobre la visita. Obtener el país de origen es un requisito mínimo, sin embargo, los extras como estados, latitud y longitud, ciudad, etc. serían agradables.

Aclaración: Necesito poder usar la información regularmente en código PHP. No solo verlo en algún lado.

Respuesta

0

Hostip.info proporciona una API de GeoLookup de IP gratuita para usar en su aplicación. Sin embargo, las búsquedas de IP NO serán consistentes o confiables debido a la facilidad de proxying. Cualquiera que visite su sitio desde un proxy probablemente será informado incorrectamente.

Sin embargo, es lo mejor que puede hacer con una IP.

1

Si te refieres al 100% de fiabilidad, no está allí. Pero puede usar MaxMind para la geolocalización, si confiable significa menos del 100%. Tienen una versión de código abierto:

http://www.maxmind.com/app/geolitecity

También hay un servicio de pago, si necesita más precisión en los resultados.

0

Solo para la región del país. Geoip libraries son útiles.

Incluso hay un programa de línea de comandos en Linux.

También puede tomar variables de entorno con su script PHP.

Aquí hay un script de Perl que escribí hace un tiempo atrás en display las variables. Nada sofisticado.

#!/usr/bin/perl 

print 'Content-type: text/HTML' . "\n\n"; 
print "<body><center>"; 
print "<table border=1>"; 
print '<tr><td>' . $_ . "<td>" . $ENV{$_} . "<br>\n" foreach sort (keys(%ENV)) ; 

Se puede ver que el navegador no existe

Cuestiones relacionadas