$ip = '98.229.152.237';
$xml = simplexml_load_file("http://ipinfodb.com/ip_query.php?ip=$ip");
print_r($xml);
Вывод:
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
)
Вам нужно использовать некоторые из Geo IP Service
Одна бесплатная служба, которую я нашел в Google: geoplugin . Они используют фрагменты php для использования их сервиса: geoplugin / php
Вы можете заглянуть в базу данных maxmind и расширение GeoIP PECL .
В моем случае:
pecl install geoip
» /usr/share/GeoIP/GeoIPCity.dat
, поэтому он обнаруживается расширением PECL. Обратите внимание, что должен также быть некоторый пакет PEAR ( PEAR :: Net_GeoIP
), который поможет вам, если вы не можете установить какое-либо расширение PECL.
Один раз вы установили оба из них, вы можете использовать такой код:
$ip = '82.229.x.y'; // replace with your IP address
var_dump(geoip_record_by_name($ip));
И вы получите такой вывод:
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
Что в моем случае верно: я действительно нахожусь в городе Лион, Франция .