laravel geolite2通过IP地址获取地理位置信息
getip2仓库地址:http://packagist.p2hp.com/packages/geoip2/geoip2
getip2官网:https://dev.maxmind.com/geoip/geoip2/geolite2
1、准备
1.1、下载库
- getip2官网下载IP地址库
- 保存到项目目录
1.2、安装
安装getip2
copycomposer require geoip2/geoip2:~2.0
2.使用
copyuse MaxMind\Db\Reader;
public function index()
{
$reader = new Reader(public_path('lib/GeoLite2-City.mmdb'));
try {
$record = $reader->get('59.58.19.72');
dd($record);//打印结果如下
//假如要获取时区:
//$timeZone = $record['location']['time_zone'];
} catch (Reader\InvalidDatabaseException $e) {
}
}
//打印结果如下
copyarray:6 [▼
"city" => array:2 [▼
"geoname_id" => 1792585
"names" => array:2 [▼
"en" => "Fuding"
"zh-CN" => "福鼎"
]
]
"continent" => array:3 [▼
"code" => "AS"
"geoname_id" => 6255147
"names" => array:8 [▼
"de" => "Asien"
"en" => "Asia"
"es" => "Asia"
"fr" => "Asie"
"ja" => "アジア"
"pt-BR" => "Ásia"
"ru" => "Азия"
"zh-CN" => "亚洲"
]
]
"country" => array:3 [▼
"geoname_id" => 1814991
"iso_code" => "CN"
"names" => array:8 [▼
"de" => "China"
"en" => "China"
"es" => "China"
"fr" => "Chine"
"ja" => "中国"
"pt-BR" => "China"
"ru" => "Китай"
"zh-CN" => "中国"
]
]
"location" => array:4 [▼
"accuracy_radius" => 500
"latitude" => 27.3273
"longitude" => 120.214
"time_zone" => "Asia/Shanghai"
]
"registered_country" => array:3 [▼
"geoname_id" => 1814991
"iso_code" => "CN"
"names" => array:8 [▼
"de" => "China"
"en" => "China"
"es" => "China"
"fr" => "Chine"
"ja" => "中国"
"pt-BR" => "China"
"ru" => "Китай"
"zh-CN" => "中国"
]
]
"subdivisions" => array:1 [▼
0 => array:3 [▼
"geoname_id" => 1811017
"iso_code" => "FJ"
"names" => array:6 [▶]
]
]
]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构