根据 ip 地址判断所属国家
Laravel 推荐使用这个包 laravel-geoip
composer require torann/geoip
php artisan vendor:publish --provider="Torann\GeoIP\GeoIPServiceProvider" --tag=config
这个包已经为你添加了助手函数和门面代理,使用起来也非常方便
geoip($ip)
GeoIp::getLocation($ip)
$ip = '161.81.196.194';
geoip($ip)->toArray();
laravel-geoip 是基于maxmind/minfraud
来实现的,如果你没有使用Laravel,也可以直接装这个包。
具体文档查看 这里。
这里还有一个免费方案平替,具体我也不清楚请求达到多少后会被限流
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
目前所在:<span id="result"></span>
</div>
<script>
const Http = new XMLHttpRequest();
const url='http://ip-api.com/json/171.22.195.166';
Http.open("GET", url);
Http.send();
Http.onreadystatechange = (e) => {
console.log(Http.responseText)
}
</script>
</body>
</html>
直接替换上面的 ip 地址即可,不过建议让前端来请求接口,因为请求不从服务端发出的话应该不会触发限流。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: