前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IP定位API【inis-api修复】

IP定位API【inis-api修复】

作者头像
Qicloud-W
发布2023-11-17 18:34:48
940
发布2023-11-17 18:34:48
举报
文章被收录于专栏:七云's Blog七云's Blog
序言

因不可抗力,inis社区关闭ip定位服务,导致小站评论ip定位error,好久好久前做api站的时候做过ip定位服务,用着还不错,索性直接拿来继续用,数据源腾讯位置服务,腾讯在这方面好像没抠门过,本站做了数据缓存,并发量应该也是够用的

inis后端修复方法

/app/api/controller/default/Location.php

代码语言:javascript
复制
//删除101行-138行粘贴以下内容
//或者更改121行
// IP获取定位信息
    public function ip($request)
    {
        // 获取请求参数
        $param  = $request->param();

    $data = [];
    $code = 400;
    $msg  = Lang::get('无数据!');

    $ip   = !empty($param['ip']) ? $param['ip'] : $this->helper->GetClientIP();

    // 设置缓存名称
    $cache_name = json_encode(array_merge(['IAPI'=>'location'], $param));

    // 检查是否存在请求的缓存数据
    if (Cache::has($cache_name) and $this->ApiCache) $data = json_decode(Cache::get($cache_name), true);
    else {

        // 获取数据
       $result = $this->helper->get('https://api.zets.cn/api/location/ip', ['ip'=>$ip], ['origin'=>$this->helper->domain()]);

        if ($result['code'] == 200) $data = $result['data'];
        else $data = $result;

        if ($this->ApiCache) Cache::tag(['gothe',$cache_name])->set($cache_name, json_encode($data));

    }

    $code = 200;
    $msg  = Lang::get('无数据!');
    // 逆向思维,节省代码行数
    if (empty($data)) $code = 204;
    else $msg = Lang::get('数据请求成功!');

    return ['data'=>$data,'code'=>$code,'msg'=>$msg];
}</code></pre>

ip定位接口文档
接口状态

已完成

接口URL

https://api.zets.cn/api/location/ip?ip=112.12.120.208

请求方式

GET

Content-Type

none

请求Query参数



参数名
示例值
参数类型
是否必填
参数描述




ip
112.12.120.208
String
是
ipv4


cache
false
Boolean
否
是否获取缓存内容



成功响应示例
{
    "code": 200,
    "msg": "数据请求成功!",
    "data": {
        "status": "1",
        "info": "OK",
        "infocode": 330700,
        "country": "中国",
        "province": "浙江省",
        "city": "金华市",
        "district": "",
        "isp": "",
        "location": "119.64759,29.07812",
        "ip": "112.12.120.208"
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 序言
  • inis后端修复方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档