Domanda

E 'possibile ottenere i dettagli della posizione dall'indirizzo IP degli utenti in PHP.

Qualche suggerimento ??

Grazie

È stato utile?

Soluzione

$ip = '98.229.152.237';
$xml = simplexml_load_file("http://ipinfodb.com/ip_query.php?ip=$ip");
print_r($xml);

Output:

SimpleXMLElement Object
(
    [Ip] => 98.229.152.237
    [Status] => OK
    [CountryCode] => US
    [CountryName] => United States
    [RegionCode] => 33
    [RegionName] => New Hampshire
    [City] => Manchester
    [ZipPostalCode] => 03103
    [Latitude] => 42.9403
    [Longitude] => -71.4435
    [Timezone] => -5
    [Gmtoffset] => -5
    [Dstoffset] => -4
)

Altri suggerimenti

È necessario utilizzare alcune vacche di Servizio IP Geo

Un servizio gratuito che ho trovato su google: geoplugin . Essi php snipplets usare il loro servizio: geoplugin / php

Si può dare un'occhiata alla MaxMind banca dati , ed il GeoIP estensione PECL .

Nel mio caso:

  • Dopo aver installato l'estensione con "pecl install geoip"
  • E ho scaricato il banca dati geolitecity e copiato a /usr/share/GeoIP/GeoIPCity.dat quindi è trovato da l'estensione PECL.

Nota ci dovrebbe essere anche qualche pacchetto PEAR ( PEAR::Net_GeoIP ) per aiutare, se si non è possibile installare qualsiasi estensione PECL.


Dopo aver installato sia di quelli, è possibile utilizzare questo tipo di codice:

$ip = '82.229.x.y';     // replace with your IP address
var_dump(geoip_record_by_name($ip));

E avrai questo tipo di uscita:

array
  'continent_code' => string 'EU' (length=2)
  'country_code' => string 'FR' (length=2)
  'country_code3' => string 'FRA' (length=3)
  'country_name' => string 'France' (length=6)
  'region' => string 'B9' (length=2)
  'city' => string 'Lyon' (length=4)
  'postal_code' => string '' (length=0)
  'latitude' => float 45.75
  'longitude' => float 4.84999990463
  'dma_code' => int 0
  'area_code' => int 0

Il che, nel mio caso, è vero. Io sono infatti nella città di Lione, FR

La domanda iniziale rimane rilevante per molti; ora in ritardo 2016).

La mia risposta, dopo anni di esperienza con GEO localizzazione è la seguente ...

segnalazione reale dei dettagli della posizione al di là di "Paese" non è affidabile. Tutte le informazioni viene estratta dalla registrazione IP # ISP ed è che le informazioni rilevanti che viene regolarmente aggiornato e trasmesso dai principali fornitori di dati. Come IP # s vengono eliminati o hanno comprato fornitori devono ottenere i dettagli relativi alla registrazione / modifiche delle imprese interessate (ad esempio ISP). La maggior parte dei numeri si ottengono in "blocchi", ma non tutti necessariamente rilevanti allo stesso server.

* Molti (? Se non la maggior parte) dei più piccoli siti web che forniscono informazioni di corsaro per l'uso pubblico del "Maxmind" FREE db e (impropriamente) passare che al pubblico; leggere avvertimenti MaxMind. i siti più piccoli non hanno le risorse per il costante aggiornamento delle registrazioni di autorità.

Il MaxMind gratuito e DB "IP2Location" sono un sottoinsieme più piccolo di loro paga-per i database; vedere i loro avvertimenti per la spiegazione di ciò che manca.

Molti IP # s acquistati in blocchi sono condivise su qualsiasi numero di server e questo porta a informazioni ambiguità. Quando si utilizza una connessione di rete wireless a un ISP, al contrario di una connessione ADSL / via cavo / bla wired probabilmente stabile, l'errora può essere abbastanza sorprendente a causa della particolare ampia posizionamento dei server di rete ISP (inoltro); nella maggior parte dei casi, il cambio non statico tra le sessioni e forse anche un po 'durante ogni sessione.

Per esempio quando si utilizza un dongle wireless portatile di roaming per la connessione ISP Spesso mi viene citato come in un altro stato, e che può essere (qui in AU) ovunque da centinaia a migliaia di chilometri di distanza dalla mia posizione attuale.

Puoi ... con PHP

Utilizzando la coppia maggiore di fornitori DB (cioè ip2location.com) si avrà accesso a script lato server disponibili che possono essere utilizzati per ottenere le informazioni necessarie. E piuttosto che un DB libera meno affidabile da loro uso DB1 di IP2Location per ottenere i visitatori "Nazione" solamente da cui posso fare quello che voglio sia tramite Perl e PHP.

Ho anche AUTO scaricare e decomprimere, come da avvertimenti di utilizzo, il db binario su base mensile solo dopo che è stato aggiornato. Ovviamente l'accesso a look-up da quelli proprio sito di superare i problemi con l'acquisizione remota on-demand e di trasformazione.

Per le mie esigenze del db PIENA ip2location era notevolmente più economico rispetto Maxmind all'anno. * Tuttavia il Maxmind GRATIS db è più ampio rispetto alla IP2Location LIBERO DB.

Nota quando si cerca di ottenere i visitatori indirizzo aggiuntivo e dettagli statali ecc vi consiglio caldamente che viene visualizzato in un modo in cui il visitatore può fare correzioni; perché non lasciano frustrati.

Saluti.

 $ip = "66.96.147.144";
    $geoPlugin_array = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $ip) );
    echo '<pre>';
    print_r($geoPlugin_array);

OUTPUT :
Array
(
    [geoplugin_request] => 66.96.147.144
    [geoplugin_status] => 200
    [geoplugin_credit] => Some of the returned data includes GeoLite data created by MaxMind, available from http://www.maxmind.com.
    [geoplugin_city] => Burlington
    [geoplugin_region] => MA
    [geoplugin_areaCode] => 781
    [geoplugin_dmaCode] => 506
    [geoplugin_countryCode] => US
    [geoplugin_countryName] => United States
    [geoplugin_continentCode] => NA
    [geoplugin_latitude] => 42.5051
    [geoplugin_longitude] => -71.204697
    [geoplugin_regionCode] => MA
    [geoplugin_regionName] => Massachusetts
    [geoplugin_currencyCode] => USD
    [geoplugin_currencySymbol] => $
    [geoplugin_currencySymbol_UTF8] => $
    [geoplugin_currencyConverter] => 1
)

Di recente ho trovato PHP GeoIPLocation Biblioteca

E 'un singolo file PHP che è necessario includere nello script PHP. Si cerca automaticamente un database ben aggiornato e restituisce i dettagli paese per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top