koa2获取客户端访问的IP并解析为具体地址
2019-04-11 本文已影响0人
waynian
需求:后端通过接口获取客户端访问的IP地址,并解析为具体的省市
获取IP
在接口的方法中调用getClientIP(ctx.request)
function getClientIP(req) {
return req.headers['x-forwarded-for'] || // 判断是否有反向代理 IP
req.headers['x-real-ip']
};
根据IP获取地区
这里我是使用高德的开放API
IP定位
1、申请Key
2、拼接URL
https://restapi.amap.com/v3/ip?ip=114.247.50.2&key=<用户的key>
3、在koa2
中网络请求
我这边使用axios
安装
npm i axios -s
引入
const axios = require('axios');
使用
axios.get(url)
.then((res)=>{
})
.catch(()=>{})
// 返回的数据类型
/**
{
"status": "1",
"info": "OK",
"infocode": "10000",
"province": "北京市",
"city": "北京市",
"adcode": "110000",
"rectangle": "116.0119343,39.66127144;116.7829835,40.2164962"
}
*/