根据 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 协议》,转载必须注明作者和本文链接
我从未见过一个早起、勤奋、谨慎,诚实的人抱怨命运。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

我从未见过一个早起、勤奋、谨慎,诚实的人抱怨命运。 收藏了

3周前 评论

:joy:生产队的磨盘都摩出火星子来了,你太能钻研了,一对比之下,我就是懒狗!

3周前 评论
MArtian (楼主) 3周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!