2009-02-26 14 views
6

Ho bisogno di un modo coerente e affidabile per determinare la posizione (stato/provincia, paese, ecc) di un computer che visita il mio sito web, utilizzando uno dei seguenti:Come faccio a determinare con precisione la posizione di un visitatore sul mio sito web?

  • PHP
  • JavaScript
  • MySQL
  • Qualsiasi servizio Web
  • Qualcosa a cui non ho pensato?

Sono am non alla ricerca di un programma di statistiche 3a parte locked-out come Google Analytics. È già in uso e fa cose incredibili, tuttavia ho bisogno di un accesso a livello di codice alle informazioni.

La soluzione ideale dovrebbe consentirmi di fornire qualsiasi informazione richiesta (ad esempio un indirizzo IP) e ottenere con precisione quante più informazioni possibili sulla visita. Ottenere il paese di origine è un requisito minimo, tuttavia gli extra come stati, latitudine e longitudine, città, ecc. Sarebbero belli.

Precisazione: Devo essere in grado di utilizzare le informazioni regolarmente nel codice PHP. Non solo vederlo da qualche parte.

risposta

0

Hostip.info fornisce un'API GeoLookup IP gratuita da utilizzare nell'applicazione. Tuttavia, le ricerche IP NON saranno coerenti o affidabili a causa della facilità del proxy. Chiunque visiterà il tuo sito da un proxy verrà probabilmente segnalato in modo errato.

Tuttavia, è il meglio che si possa fare con un IP.

1

Se si intende l'affidabilità al 100%, non è lì. Ma puoi utilizzare MaxMind per la geolocalizzazione, se affidabile significa meno del 100%. Hanno una versione open source:

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

C'è anche un servizio a pagamento, se avete bisogno di una maggiore accuratezza per i risultati.

0

Solo per la regione del paese. Geoip libraries sono utili.

C'è persino un programma a riga di comando in linux.

Inoltre è possibile acquisire variabili di ambiente con lo script PHP.

Ecco uno script Perl che ho scritto un po di tempo prima delle variabili display. Nulla di bello.

#!/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)) ; 

Si può vedere il browser

Problemi correlati