riskivy / yii2-geoip
Yii 2 GeoIP 扩展。返回当前或指定 IP 的国家、城市、纬度、经度(使用 MaxMind 的 GeoIP2 数据库)
v1.0.0
2018-12-04 08:57 UTC
Requires
- php: >=5.4.0
- maxmind-db/reader: ~1.0
- yiisoft/yii2: >=2.0.0
Requires (Dev)
- phpunit/phpunit: ~4.4
This package is not auto-updated.
Last update: 2024-09-19 12:33:10 UTC
README
提供用户通过 IP 地址的地理位置信息。
当前可用
- 国家
- 城市
- 纬度,经度
- 国家 ISO 代码
安装
运行
$ php composer.phar require riskivy/yii2-geoip "~1.0"
或
将其添加到您的 composer.json
{ "require": { "riskivy/yii2-geoip": "~1.0" } }
并运行
$ php composer update
用法
像组件一样
<?php $config = [ ... 'components' => [ 'geoip' => [ 'class' => 'riskivy\GeoIP\GeoIP', 'dbPath' => Yii::getAlias('@example/maxmind/database/city.mmdb') ], ] ... ];
在代码的某个位置
$ip = Yii::$app->geoip->ip(); // current user ip $ip = Yii::$app->geoip->ip("208.113.83.165"); $ip->city; // "San Francisco" $ip->country; // "United States" $ip->location->lng; // 37.7898 $ip->location->lat; // -122.3942 $ip->isoCode; // "US"
在您的应用程序的某个位置直接使用对象
$geoip = new \riskivy\GeoIP\GeoIP(); $ip = $geoip->ip("208.113.83.165"); $ip->city; // "San Francisco" $ip->country; // "United States" $ip->location->lng; // 37.7898 $ip->location->lat; // -122.3942 $ip->isoCode; // "US"
常见问题解答
问题:我得到错误 在 /usr/share/GeoIP/GeoIPCity.dat 中找不到所需的数据库。
怎么办?
答案:下载此文件 http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 并将其解压缩到 /usr/share/GeoIP/GeoIPCity.dat