2009-12-02 4 views

Répondre

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

Sortie:

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 
) 
+0

merci c'est ce que je cherchais .... – Biranchi

+0

Ne fonctionne pas maintenant –

1

Consultez le PEAR GeoIP library.

+0

vous liez retours 404 – Amirshk

+0

Désolé à ce sujet. Le soulignement est codé. Fixé. –

3

Vous pouvez consulter le maxmind database et le GeoIP PECL extension.

Dans mon cas:

  • J'ai installé l'extension avec « pecl install geoip »
  • Et je l'ai téléchargé le geolitecity database et recopié à /usr/share/GeoIP/GeoIPCity.dat il a trouvé par l'extension PECL.

Notez qu'il devrait aussi y avoir un paquet PEAR (PEAR::Net_GeoIP) pour vous aider, si vous ne pouvez installer aucune extension PECL.


Une fois que vous avez installé les deux ceux-ci, vous pouvez utiliser ce type de code:

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

Et vous obtenez ce genre de sortie:

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 

Ce qui, dans mon cas, c'est vrai: je suis en effet dans la ville de Lyon, FR.

0
$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 
) 
1

La première question reste pertinente à un grand nombre; maintenant fin 2016).

Ma réponse après des années d'expérience avec GEO localisation est la suivante ...

des rapports réel les détails de l'emplacement au-delà « Pays » est peu fiable. Toutes les informations proviennent de l'enregistrement IP # ISP et c'est cette information pertinente qui est régulièrement mise à jour et transmise par les principaux fournisseurs de données. Au fur et à mesure que les numéros IP sont supprimés ou achetés, les fournisseurs doivent obtenir les détails sur l'enregistrement/les changements des entreprises concernées (c'est-à-dire les FAI). La plupart des nombres sont obtenus en "blocs" mais ne sont pas nécessairement tous pertinents pour le même serveur.

* Beaucoup (sinon la plupart?) Des plus petits sites web privés fournissant des informations au public utilisent la base de données «Maxmind» FREE et la transmettent (de façon incorrecte) au public; Lire les mises en garde Maxmind. Les sites plus petits ne disposent pas des ressources nécessaires à la mise à jour constante des enregistrements d'autorité.

Les bases de données libres maxmind et "ip2location" constituent un sous-ensemble plus petit de leurs bases de données payantes; voir leurs mises en garde pour l'explication de ce qui manque.

De nombreux numéros IP achetés en blocs sont partagés sur un nombre quelconque de serveurs, ce qui entraîne une ambiguïté de l'information. Lorsque vous utilisez une connexion réseau sans fil à un FAI, par opposition à une connexion câblée ADSL/câble/bla probablement stable, l'erreur peut être assez surprenante en raison d'un placement particulièrement large des serveurs de réseau ISP (relais); dans la plupart des cas, changement statique entre les sessions et peut-être même lors de chaque session. Par exemple, lorsque j'utilise une clé USB sans fil pour une connexion ISP, je suis souvent cité comme étant dans un autre état, et cela peut être (ici en AU) de quelques centaines à quelques milliers de KM de mon emplacement actuel.

Pouvez-vous ... avec PHP? En utilisant le principal couple de fournisseurs DB (ie ip2location.com), on aura accès aux scripts côté serveur disponibles qui peuvent être utilisés pour obtenir les informations nécessaires. Et au lieu d'une DB libre moins fiable, j'utilise le DB1 de ip2location pour obtenir le "Pays" des visiteurs seulement à partir duquel je peux faire ce que je veux via Perl et PHP.

Je télécharge et décompresse également automatiquement, selon les avertissements d'utilisation, la base de données binaire sur une base mensuelle juste après qu'elle soit mise à jour. Évidemment, l'accès aux recherches de son propre site permet de surmonter les problèmes liés à l'acquisition et au traitement à distance à la demande.

Pour mes besoins, le ip2location FULL db était considérablement moins cher que Maxmind par an. * Cependant, la base de données Maxmind FREE est plus complète que la base de données ip2location FREE. Notez que lorsque vous tentez d'obtenir des adresses et des détails d'état supplémentaires pour les visiteurs, je suggère fortement qu'il soit affiché de telle sorte que le visiteur puisse apporter des corrections; de peur qu'ils ne partent frustrés.

Cordialement.

Questions connexes