codenexus/lumen-geoip

此包已弃用且不再维护。未建议替代包。

Lumen的GeoIP

v2.0.2 2016-11-13 02:09 UTC

This package is auto-updated.

Last update: 2019-02-20 19:32:36 UTC


README

⛔️ [已弃用]

Lumen的GeoIP

Latest Stable Version Total Downloads License composer.lock StyleCI

根据访客的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_IPHTTP_X_FORWARDED_FORHTTP_X_FORWARDEDHTTP_X_CLUSTER_CLIENT_IPHTTP_FORWARDED_FORHTTP_FORWARDEDREMOTE_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总是为空白的错误