codenexus / lumen-geoip
此包已弃用且不再维护。未建议替代包。
Lumen的GeoIP
v2.0.2
2016-11-13 02:09 UTC
Requires
- php: >=5.5.9
- geoip2/geoip2: ^2.4
This package is auto-updated.
Last update: 2019-02-20 19:32:36 UTC
README
⛔️ [已弃用]
Lumen的GeoIP
根据访客的IP地址确定网站访客的地理位置。
安装
要安装此包,只需通过composer安装
$ composer require codenexus/lumen-geoip
服务提供者
接下来,打开bootstrap/app.php
并在注册服务提供者部分下添加
... $app->register(Codenexus\GeoIP\GeoIPServiceProvider::class);
更新MaxMind GeoLite2 City数据库
在项目的根目录下通过命令行运行此操作
$ php artisan geoip:update
使用方法
GeoIP将尝试按以下顺序使用以下http头确定IP:HTTP_CLIENT_IP
、HTTP_X_FORWARDED_FOR
、HTTP_X_FORWARDED
、HTTP_X_CLUSTER_CLIENT_IP
、HTTP_FORWARDED_FOR
、HTTP_FORWARDED
、REMOTE_ADDR
。可选地,您可以设置一个IP作为唯一参数来设置它。
$record = app()->geoip->getLocation('232.223.11.11'); $record = GeoIP::getLocation('232.223.11.11'); // If you have enabled facades print($record->country->isoCode . "\n"); // 'US' print($record->country->name . "\n"); // 'United States' print($record->country->names['zh-CN'] . "\n"); // '美国' print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota' print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN' print($record->city->name . "\n"); // 'Minneapolis' print($record->postal->code . "\n"); // '55455' print($record->location->latitude . "\n"); // 44.9733 print($record->location->longitude . "\n"); // -93.2323
其他方法
这些方法也适用于您的应用程序中。
app()->geoip->checkIp($ip) // Checks IP to make sure IP is a valid IPv4 or IPv6 address and not within a private or reserved range app()->geoip->getIp() // Returns the detected client IP
默认位置数据
当未检测到IP时,它将被设置为127.0.0.1,最终会抛出异常。如果您不在生产环境中,您的记录将默认为以下数据。
array ( "ip" => "232.223.11.11", "isoCode" => "US", "country" => "United States", "city" => "New Haven", "state" => "CT", "postal_code" => "06510", "lat" => 41.28, "lon" => -72.88, "timezone" => "America/New_York", "continent" => "NA", "default" => false );
变更日志
v2.0.0
- 简化命名空间
- 添加了外观支持
- 在开发中添加了默认位置
- 修复了检测到的IP总是为空白的错误