kostikpenzin / yii2-geoip
为 Sypex Geo API 的 Yii2 geoip 扩展
v0.0.3
2022-05-18 12:25 UTC
Requires
- yiisoft/yii2: *
README
Yii2 的 Geo ip
Sypex Geo 是由 Sypex Dumper 制造商开发的一款基于 IP 地址的地理位置产品。在接收到 IP 地址后,Sypex Geo 会提供访客的位置信息——国家、地区、城市、地理坐标。
Sypex Geo - 基于 BSD 许可协议发布,即完全免费。
Sypex Geo 使用其自己的二进制文件格式的数据库。这种格式是开放的、通用的。在开发格式时,进行了大量工作以优化算法。因此,Sypex Geo 比竞争对手运行得更快,消耗更少的内存,并产生更少的磁盘访问(在繁忙的服务器上,这种差异甚至更大,更有利于 Sypex Geo)。
直接链接到数据库
- Sypex Geo City DB(免费)- http://sypexgeo.net/files/SxGeoCity_utf8.zip
- Sypex Geo City Max DB - https://sypexgeo.net/ru/buy/
安装
安装此扩展的首选方式是通过 composer。
运行
php composer.phar require --prefer-dist kostikpenzin/yii2-geoip "*"
或
"kostikpenzin/yii2-geoip": "*"
将以下内容添加到您的 composer.json
文件的 require 部分。
使用方法
扩展安装后,只需在代码中使用即可
<?php $geo = new \kostikpenzin\geoip\Geoip(); // get by remote IP $geo->get(); // also returned geo data as array echo $geo->ip,'<br>'; echo $geo->ipAsLong,'<br>'; var_dump($geo->country); echo '<br>'; var_dump($geo->region); echo '<br>'; var_dump($geo->city); echo '<br>'; // get by custom IP print_r($geo->get('88.200.214.22')); ?>
国家、地区和城市的返回信息作为数组。例如
array ( 'ip' => '135.181.47.216', 'city' => array ( 'id' => 658225, 'lat' => 60.16952, 'lon' => 24.93545, 'name_ru' => 'Хельсинки', 'name_en' => 'Helsinki', 'name_de' => 'Helsinki', 'name_fr' => 'Helsinki', 'name_it' => 'Helsinki', 'name_es' => 'Helsinki', 'name_pt' => 'Helsínquia', 'okato' => '', 'vk' => 0, 'population' => 558457, 'tel' => '', 'post' => '', ), 'region' => array ( 'id' => 828987, 'lat' => 60.83, 'lon' => 26, 'name_ru' => 'Южная Финляндия', 'name_en' => 'Southern Finland Province', 'name_de' => 'Südfinnland (Provinz)', 'name_fr' => 'Finlande méridionale', 'name_it' => 'Finlandia meridionale', 'name_es' => 'Finlandia Meridional', 'name_pt' => 'Finlândia Meridional', 'iso' => 'FI-ES', 'timezone' => 'Europe/Helsinki', 'okato' => '', 'auto' => '', 'vk' => 0, 'utc' => 2, ), 'country' => array ( 'id' => 69, 'iso' => 'FI', 'continent' => 'EU', 'lat' => 64, 'lon' => 26, 'name_ru' => 'Финляндия', 'name_en' => 'Finland', 'name_de' => 'Finnland', 'name_fr' => 'Finlande', 'name_it' => 'Finlandia', 'name_es' => 'Finlandia', 'name_pt' => 'Finlândia', 'timezone' => 'Europe/Helsinki', 'area' => 337030, 'population' => 5244000, 'capital_id' => 658225, 'capital_ru' => 'Хельсинки', 'capital_en' => 'Helsinki', 'cur_code' => 'EUR', 'phone' => '358', 'neighbours' => 'NO,RU,SE', 'vk' => 207, 'utc' => 2, ), 'error' => '', 'request' => -1, 'created' => '2021.03.18', 'timestamp' => 1616099629, )