【workbunny】IP歸屬地查詢插件

1.0.12
版本
2025-04-01
版本更新時間
2110
安裝
25
star
Webman plugin for IP attribution query.
簡介
該組件可以通過IP獲取 大洲、國家、城市、網(wǎng)絡(luò)運(yùn)營商等信息;
- 該插件自帶ip本地庫,存放于
/database
; 最后更新時間:2024-07-05 (空了就時不時更新一下)- 注:由于db文件比較大,強(qiáng)烈建議外載(當(dāng)然本插件的意義就是簡單化了geoip2/geoip2包,并附贈了db文件);db文件下載方式如下:
- 至 https://www.maxmind.com/ 注冊賬號
- 進(jìn)入下載頁面下載對應(yīng)db文件
- 注:由于db文件比較大,強(qiáng)烈建議外載(當(dāng)然本插件的意義就是簡單化了geoip2/geoip2包,并附贈了db文件);db文件下載方式如下:
webman-ip-attribution
是基于geoip2
作為底層,依托mmdb數(shù)據(jù)庫
查詢ip歸屬地及asn信息- 本項(xiàng)目基于geoip2/geoip2,感謝MaxMind 工作組的開源
安裝
composer require workbunny/webman-ip-attribution
使用
配置
1. 在Webman中使用app.php
注:配置可選填
return [
'enable' => true,
'default' => '--', // 缺省展示值
'language' => ['zh-CN'], // 語言
'db-country' => null, // 自定義的country庫絕對地址
'db-city' => null, // 自定義的city庫絕對地址
'db-asn' => null, // 自定義的asn庫絕對地址
];
2. 在php-fpm中使用
注:配置可選填
use Workbunny\WebmanIpAttribution\Location;
$location = new Location([
'default' => '--', // 缺省展示值
'language' => ['zh-CN'], // 語言
'db-country' => null, // 自定義的country庫絕對地址
'db-city' => null, // 自定義的city庫絕對地址
'db-asn' => null, // 自定義的asn庫絕對地址
]);
快速獲取
use Workbunny\WebmanIpAttribution\Location;
use Workbunny\WebmanIpAttribution\Exceptions\IpAttributionException
try {
$location = new Location();
var_dump($location->getLocation('8.8.8.8')); // ipv4
var_dump($location->getLocation('::0808:0808')); // ipv6
// [
// 'country' => 'United States',
// 'city' => '--',
// 'asn' => 'GOOGLE',
// 'continent' => 'North America',
// 'timezone' => 'America/Chicago',
// ]
}catch (IpAttributionException $exception){
}
使用city庫查詢
注:City庫包含了 大洲、國家、城市,但不包含網(wǎng)絡(luò)運(yùn)營商等相關(guān)信息
use Workbunny\WebmanIpAttribution\Location;
use Workbunny\WebmanIpAttribution\Exceptions\IpAttributionException
try {
$location = new Location();
var_dump($location->city('8.8.8.8')); // ipv4
var_dump($location->city('::0808:0808')); // ipv6
// 返回 GeoIp2\Model\City 對象
}catch (IpAttributionException $exception){
}
使用country庫查詢
注:Country庫不包含城市及網(wǎng)絡(luò)運(yùn)營商等信息,通常使用City庫即可,Country存在的意義在于較于City更輕
use Workbunny\WebmanIpAttribution\Location;
use Workbunny\WebmanIpAttribution\Exceptions\IpAttributionException
try {
$location = new Location();
var_dump($location->country('8.8.8.8')); // ipv4
var_dump($location->country('::0808:0808')); // ipv6
// 返回 GeoIp2\Model\Country 對象
}catch (IpAttributionException $exception){
}
使用asn庫查詢
注:Asn庫僅包含網(wǎng)絡(luò)運(yùn)營商等相關(guān)信息
use Workbunny\WebmanIpAttribution\Location;
use Workbunny\WebmanIpAttribution\Exceptions\IpAttributionException
try {
$location = new Location();
var_dump($location->asn('8.8.8.8')); // ipv4
var_dump($location->asn('::0808:0808')); // ipv6
// 返回 GeoIp2\Model\Asn 對象
}catch (IpAttributionException $exception){
}
使用原始Reader操作
注:原始Reader可以直接使用 geoip2/geoip2 提供的方法操作相關(guān)的庫
use Workbunny\WebmanIpAttribution\Location;
$location = new Location();
var_dump($location->createReader(Location::DB_CITY)); // City庫
// 返回連接City庫的 GeoIp2\Database\Reader 對象
var_dump($location->createReader(Location::DB_ASN)); // ASN庫
// 返回連接ASN庫的 GeoIp2\Database\Reader 對象
var_dump($location->createReader(Location::DB_ASN)); // Country庫
// 返回連接Country庫的 GeoIp2\Database\Reader 對象
更多用法和示例參照 geoip2/geoip2;