2018年8月15日 星期三

[php] 經由 IP 得到國碼 與 國家資訊 geoop ip to country 使用內建 geoip_record_by_name

php 經由 IP 得到國碼 geoop ip to country
可以使用 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

沒有留言:

張貼留言