Obtenir les détails de l'emplacement de la propriété intellectuelle en PHP
-
11-09-2019 - |
Question
Est-il possible d'obtenir les détails de l'emplacement de l'utilisateur Adresse IP en PHP.
Toutes les suggestions ??
Merci
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
$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.