【試した環境】 Google Cloud Platform(GCP)[VMインスタンス]上で実行 OS : Linux(Debian 9.2) PHP(7.0.27)
今回はPHPでgeoipを利用して、[IPアドレス] や [ホスト名] から国を判定する(国コードなどの取得する)方法です。
データベースの更新
まず、geoipを取得する必要があるデータベースを取得する必要があります。
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
$ gunzip GeoLiteCity.dat.gz
$ sudo mkdir -v /usr/share/GeoIP
$ sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
データベースは定期的に更新する必要があります。(基本上記の繰り返しでOK)
GeoIPの利用方法 - GeoIPデータベースの更新
geoipをインストール
php用のgeoipをインストールします。
$ sudo apt-get install php-geoip
(if PHP5) $ sudo apt-get install php5-geoip
これでphpで利用できるようになりました。
試してみる
例えば以下で2文字の国コードが帰ってきます。$countryCode = geoip_country_code_by_name($_SERVER["REMOTE_ADDR"]);
国コードは以下を参照
ISO 3166 Country Codes
その他含め関数群は以下を参照
PHP : GeoIP 関数 - Manual
【参考】
PHP : GeoIP 関数 - ManualGeoIPの利用方法 - GeoIPデータベースの更新
0 件のコメント:
コメントを投稿