PHPのgeoip_~な関数が機能しないとき
こんにちは
おきんです。
今回はPHPでgeoip_asnum_by_name()などGeoIPを前提とした関数が動かない時に解決した事例を紹介します。
返り値がnullになる場合はGeoIPのデータベースがインストールされていないです。
geoip_~の関数はPHPのリファレンスには書いてありませんが前提としてGeoIPのデータベースをインストールする必要があります。
シェルからphp-cliでインストール状況は確認できます。
php -r "print_r(geoip_db_get_all_info());"
[available] => 1になっているデータベースは使用できます。
aptやyamで一部がインストールできます。geoipで調べると引っかかると思います。
Ubuntu 18.04でaptからインストールできるgeoip-databaseとgeoip-database-extraでは下記のデータベースが利用できました。
geoip-database |
GeoIP Large Country |
GeoIP Country |
geoip-database-extra |
GeoIP City |
GeoIP ASNum |
https://mi.okin-jp.net/@okin_p(Misskey)
https://fi.okin-jp.net/@okin_p(Firefish)
https://si.okin-jp.net/@okin_p(Mastodon)
https://fedifile.net/@okin_p/profile/
https://twpf.jp/okin_p
http://profile.hatena.ne.jp/okin_p/
名前:おきん
やってること:面倒なことをPHPにやらせる、IPv6でなにかする、車で移動する
主なガジェット:Google Pixel 4a (5G) ,iPhone XS(ジャンク), iPad mini5, その他
種別:猫 over IPv6 run on PHP
パソコンやガジェットについて書いていく…予定。