php或laravel使用maxmind/GeoIP2-php免费判断IP地址定位
Song •
2473 次浏览 •
0个评论 •
2021年06月21日
一、GeoIP2简介
MaxMind 成立于 2002 年,是行业领先的 IP 情报和在线欺诈检测工具提供商。官网地址 maxmind.com;提供免费的IP地址定位服务,定位精准;支持国内国外城市定位。返回国家、城市、经纬度等。
二、Laravel/php使用方法
1、安装官方拓展包
首先安装composer,大家应该都早已安装;这里直接安装拓展包。
composer require geoip2/geoip2:~2.0
2、下载并解压数据库
首先确保您已下载要导入的GeoIP2或GeoLite2数据库的最新版本。您可以登录账号免费下载数据库。支持CSV和zip格式。还能导入mysql数据库以及实时更新。具体参考官方文档

3、使用
城市案例
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');
// Replace "city" with the appropriate method for your database, e.g.,
// "country".
$record = $reader->city('128.101.101.101');
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
print($record->traits->network . "\n"); // '128.101.101.101/32'
匿名 IP 示例
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-Anonymous-IP.mmdb');
$record = $reader->anonymousIp('128.101.101.101');
if ($record->isAnonymous) { print "anon\n"; }
print($record->ipAddress . "\n"); // '128.101.101.101'
print($record->network . "\n"); // '128.101.101.101/32'
更多查看官方文档:
其他解决方案
国内也有一些服务商提供IP定位服务,有时间我写个拓展包即成免费和付费的IP服务,让大家免费的不准确时自动切换付费的。
-
在阿里云OSS上部署Html静态页面解决偶然高并发需求 2021-06-16 -
laravel出现无法清除缓存.确保您具有适当的权限(Failed to clear cache. Make sure you have the appropriate permissions.) 2021-06-08 -
laravel6升级为laravel7教程以及问题总结 2021-05-28 -
laravel5.8升级到laravel6.0教程以及异常处理 2021-05-28 -
laravel升级到5.5升级到5.8出现教程以及异常处理 2021-05-28

更多相关好文