可以使用 php geoip extension 的 geoip_record_by_name 功能
如果出現
PHP Warning: geoip_record_by_name(): Required database not available at /usr/share/GeoIP/GeoIPCity.dat. in /z.php on line 3
表示沒有對應的 GeoIPCity database ,
可以到 maxmind 載 geolite 版的 dat 放置到 /usr/share/GeoIP/GeoIPCity.dat
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
root@fb7cc96db23b:/# php z.php
Array
(
[continent_code] => NA
[country_code] => US
[country_code3] => USA
[country_name] => United States
[region] =>
[city] =>
[postal_code] =>
[latitude] => 37.750999450684
[longitude] => -97.821998596191
[dma_code] => 0
[area_code] => 0
)
範例
root@fb7cc96db23b:/# cat z.php
<?php
$ip = "8.8.8.8";
echo print_r(geoip_record_by_name($ip));
root@fb7cc96db23b:/# php -m | grep geo
geoip
x
沒有留言:
張貼留言