Question

Est-il possible d'obtenir les détails de l'emplacement de l'utilisateur Adresse IP en PHP.

Toutes les suggestions ??

Merci

Était-ce utile?

La solution

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

Autres conseils

Vous devez utiliser une kine de Geo IP Service

Un service gratuit j'ai trouvé sur google: geoplugin . Ils php snipplets utiliser leur service: geoplugin / php

Vous pouvez jeter un oeil à la base de données MaxMind , et GeoIP extension PECL .

Dans mon cas:

  • J'ai installé l'extension avec "pecl install geoip"
  • Et je l'ai téléchargé base de données de geolitecity et recopié à /usr/share/GeoIP/GeoIPCity.dat il est donc trouvé par l'extension PECL.

Notez qu'il devrait aussi y avoir un paquet PEAR ( PEAR::Net_GeoIP ) pour vous aider, si vous ne peut pas installer une 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 obtiendrez 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, est vrai. Je suis en effet dans la ville de Lyon, FR

Consultez la

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 ...

rapports réel des détails au-delà de l'emplacement « Pays » est peu fiable. Toutes les informations glanées à partir de l'enregistrement # IP fournisseur de services Internet et que des informations pertinentes qui est régulièrement mis à jour et transmis par les principaux fournisseurs de données. Comme # IP s sont abandonnées ou achetés les fournisseurs doivent obtenir les détails sur l'enregistrement / modifications des entreprises concernées (à savoir les FAI). La plupart des chiffres sont obtenus dans des « blocs », mais pas tous nécessairement pertinents pour le même serveur.

* Beaucoup (? Sinon plus) des sites plus petits flibustiers qui fournissent les informations à l'usage public de la « Maxmind » FREE db et (mal) passent que sur le public; lire des mises en garde MaxMind. Les petits sites ne disposent pas des ressources pour la mise à jour constante des enregistrements d'autorité.

Le MaxMind libre et BDs « de IP2Location » sont un petit sous-ensemble de leur rémunération aux bases de données; voir leurs mises en garde pour l'explication de ce qui manque.

De nombreux IP # s dans des blocs achetés sont partagés sur un certain nombre de serveurs, ce qui conduit à l'ambiguïté d'information. Lorsque vous utilisez une connexion réseau sans fil à un fournisseur d'accès Internet, par opposition à une connexion ADSL / câble / blah filaire probablement stable, le Erreura peut être tout à fait surprenante en raison du placement particulièrement large des serveurs de réseau de fournisseur d'accès Internet (relais); dans la plupart des cas changer non statique entre les sessions et peut-être même un peu au cours de chaque session.

Comme par exemple lors de l'utilisation d'un dongle sans fil portable itinérance pour la connexion FAI je suis souvent cité comme étant dans un autre Etat, et qui peut être (ici à l'UA) où des centaines de milliers de kilomètres de mon emplacement actuel.

Pouvez-vous ... avec PHP ?

En utilisant les principaux fournisseurs des deux DB (c.-à-ip2location.com) aura accès aux scripts côté serveur disponibles qui peuvent être utilisés pour obtenir les informations nécessaires. Et plutôt que d'un DB libre moins fiable d'eux j'utilise DB1 de ip2location pour obtenir les visiteurs « pays » que d'où je peux faire ce que je veux à la fois via Perl et PHP.

I télécharger AUTO et décompressé, selon des mises en garde d'utilisation, le db binaire sur une base mensuelle juste après sa mise à jour. Il est évident que l'accès look-ups de ceux propre site permet de surmonter les problèmes avec l'acquisition et le traitement à distance à la demande.

Pour mes besoins le ip2location rhéostatique était beaucoup moins cher que Maxmind par an. * Cependant, le Maxmind FREE db est plus étendue que la ip2location DB FREE.

Remarque lorsque vous essayez d'obtenir des visiteurs supplémentaires et adresse les détails de l'État, etc. Je suggère fortement qu'il apparaît d'une manière que le visiteur peut apporter des corrections; de peur qu'ils ne laissent frustrés.

Cordialement.

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

J'ai récemment trouvé PHP Library GeoIPLocation

Son un seul fichier PHP que vous devez inclure dans votre script PHP. Il recherche automatiquement une base de données bien mis à jour et renvoie les détails du pays pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top