本项目 Fork From 狂奔的蚂蚁, 只是格式化了返回结果。 本库基于 ip2region ,适配Hyperf,可通过注解来使用。
ip2region - 最自由的ip地址查询库,ip到地区的映射库,提供Binary,B树和纯内存三种查询算法,妈妈再也不用担心我的ip地址定位。
数据聚合了一些知名ip到地名查询提供商的数据,这些是他们官方的的准确率,经测试着实比纯真啥的准确多了。
每次聚合一下数据需要1-2天,会不定时更新。
每条ip数据段都固定了格式:城市Id|国家|区域|省份|城市|ISP
只有中国的数据精确到了城市,其他国家只能定位到国家,后前的选项全部是0,已经包含了全部你能查到的大大小小的国家。 (请忽略前面的城市Id,个人项目需求)
数据库文件是ip2region.db
composer require simplephp/ip2region
use Hyperf\Di\Annotation\Inject;
......
/**
* @Inject()
* @var \Firstphp\Ip2region\Ip2Region
*/
protected $ip2region;
......
$res = $this->ip2region->binarySearch($ip = "223.104.148.63");
var_dump($res);
// Array
// (
// [city_id] => 1015
// [country] => 中国
// [regionCode] => 0
// [province] => 江苏省
// [city] => 南京市
// [operators] => 移动
// )