php或laravel使用maxmind/GeoIP2-php免费判断IP地址定位
Song •
1931 次浏览 •
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服务,让大家免费的不准确时自动切换付费的。
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
热门文章
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
-
Zerotier+Moon+Nginx实现内网穿透搭建网站 2024-08-23
更多相关好文