GEOIP e get un indirizzo IP di computer Posizione?

Voglio che il mio sito sia in grado di localizzare i computer, quindi se qualcuno sta accedendo al mio sito da Londra o Manchester ecc. E visualizzare gli utenti da una determinata area a seconda della loro posizione sul computer. un po 'come un sito di appuntamenti online che suggerisce agli utenti della tua zona.

Ho guardato questo database GEOIP che elenca tutte le città di tutto il mondo. Ma non so cosa fare dopo? Devo dare un'occhiata agli script di indirizzo IP che tirano e confrontano le informazioni dal database GEOip?

Per favore qualcuno può indicarmi la giusta direzione. Grazie.

Database GeoIP da: http://dev.maxmind.com/geoip/geolite

Prova il codice qui sotto.

$ip = $_SERVER['REMOTE_ADDR']; echo $location = file_get_contents("http://api.hostip.info/country.php?ip=$ip"); 

Non provarlo nel tuo localhost. Darà l'ip 127.0.0.1.

 echo $location= file_get_contents("http://api.hostip.info/country.php?ip=12.215.42.19"); //outputs US 

Dipende dal tuo bisogno. Ti suggerirei di utilizzare un servizio Web in modo da non whererti preoccupare di ospitare il database e di mantenerlo da solo. Tutto quello che devi fare è analizzare l'indirizzo IP del tuo visitatore e get immediatamente il risultato. Sto usando il servizio web IP2 da questo sito .

PHP ha funzioni integrate per GeoIP

Libreria GeoIP

Questa function può essere particolarmente utile in quanto restituisce continente, paese, città, ecc. In un arrays.

geoip_record_by_name

Usa $_SERVER['REMOTE_ADDR'] come tuo ip.

$record = geoip_record_by_name( $_SERVER['REMOTE_ADDR']);

Ho usato questo in PHP sul mio sito. Molto veloce e facile da digerire (xml, ecc.): http://www.geoplugin.com/

Si prega di notare che questo database è: In our recent tests, the GeoIP databases tested at 99.8% accurate on a country level, 90% accurate on a state level in the US, and 83% accurate for cities in the US within a 40 kilometer radius.

Vorrei esaminare qualcosa come: la libreria PEAR GeoLite

Un breve snippet di utilizzo di questa libreria in PHP:

 $geoip = Net_GeoIP::getInstance(dirname(__FILE__) . '/data/GeoLiteCity.dat'); $ipaddress = '72.30.2.43'; // Yahoo! $location = $geoip->lookupLocation($ipaddress); var_dump($location); 

L'output mostrerà, qualcosa di simile a:

 object(Net_GeoIP_Location)[2] protected 'aData' => arrays 'countryCode' => string 'US' (length=2) 'countryCode3' => string 'USA' (length=3) 'countryName' => string 'United States' (length=13) 'region' => string 'CA' (length=2) 'city' => string 'Sunnyvale' (length=9) 'postalCode' => string '94089' (length=5) 'latitude' => float 37.4249 'longitude' => float -122.0074 'areaCode' => int 408 'dmaCode' => float 807 

Probabilmente hai già installato GEOIP come estensione PECL. Se non lo fai, puoi installarlo da solo.

Se hai bisogno di qualcosa di più specifico del Paese, dovrai pagare per get il DB, ma le funzioni sono ancora lì.