uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用

需求

在2022年5月初,网络上各大平台上,都开始展示用户IP属地,在某音、某手等小视频平台以及各主流网站应用中,都展示IP归属地,如下图所示:

解决办法

收费文档的肯定有很多,基本你百度搜"归属地免费API",搜出来的都是那种免费多少次的,后续要收费的那种,真正免费的很少,这些年也用了几个归属地API接口,运行一段时间发现挺稳定的,给大家推荐一下。

1)高德地图IP定位

地址:
https://lbs.amap.com/api/webservice/guide/api/ipconfig
优点:

高德地图的这个api查询速度很快,很好用,调用方法还是挺简单的。

缺点

有次数限制,个人认证开发者:日配额(5000次/日),企业认证开发者:日配额(100000次/日),理论来讲一般用户量不大的项目,使用高德地图的IP定位获取用户的归属地,已经够用了,如果不够用那只能再去花钱买流量包了,或者使用第二种推荐方式。

2)太平洋网络IP地址查询Web接口

地址:
https://whois.pconline.com.cn/

优点:

接口类型丰富,支持各种方式的调用,返回的类型也比较丰富。

缺点

编码类型‌GBK,有可能没处理编码返回的是乱码,速度上不如高德地图相应快。

实现方法

1)前端客户端调用

可以直接在客户端进行调用,以uniapp为例,使用uni.request调用第三方接口,示例代码:

javascript 复制代码
uni.request({
	url:"https://whois.pconline.com.cn/ipJson.jsp?json=true",
	method:"GET",
	success:res=>{
		console.log(res);
	}
})

在客户端调用接口,会出现跨越问题,可以参考下面的视频学习,解决uniapp项目跨越问题。

学习地址:https://www.bilibili.com/video/BV1rt421V7Kc/

2)uniCloud服务端调用

前端调用接口出现跨越问题,原因是因为浏览器的同源策略,也就是说前端无法直接发起跨域请求。

使用服务端uniCloud调用第三方接口就可以了,让云对象返回结果,uniCloud云对象是可以允许跨域的。

代码如下:

javascript 复制代码
module.exports = {
	_before: function () { // 通用预处理器

	},
	async getAddress(){
		let province;		
		let {clientIP} = this.getClientInfo();		
		try{
			let {data:{pro}} = await uniCloud.request({
				url:"https://whois.pconline.com.cn/ipJson.jsp?json=true&ip="+clientIP,
				method:"GET",
				timeout:2000
			})
			province = pro || "未知";			
		}catch(err){
			province = "未知";	
		}
		return province;		
	}
}

上面是uniCloud云对象封装了一个getAddress方法;

  • this.getClientInfo() 获取用户客户端信息,解构出clientIP,用户的IP地址
  • uniCloud.request在云对象调用第三方接口,用法和客户端的uni.request方法几乎一致
  • 设置超时时间2秒钟,超过2秒或者接口出现问题,直接返回未知,避免接口出现问题而导致过长的时间等待

总结

上面重点给大家介绍了根据用户ip地址获取归属的免费api接口;

介绍云对象可以使用uniCloud.request调用第三方接口;

感谢大家的观看,如果帮助到你,不要忘了给点赞支持一下,谢谢。

相关推荐
啊阿狸不会拉杆5 小时前
《计算机网络-自顶向下方法》5.4 ISP之间的路由选择:BGP 读书笔记
网络·计算机网络·接口隔离原则
Delite8026 小时前
摆脱实验室束缚:便携式卡尔费休微量水分检测技术与现场应用解析
大数据·网络·人工智能
ACP广源盛139246256737 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛139246256737 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
我爱cope8 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
OIDCAT9 小时前
国产USB转千兆网卡芯片CH398-RTL8153国产替代实测与选型
网络·嵌入式硬件·智能硬件·国产芯片·usb转千兆网卡
M--Y11 小时前
Docker数据持久化与网络架构
网络·docker·架构
myy-learn11 小时前
30-HTTP协议
网络·网络协议·http
开开心心就好12 小时前
免费刷题软件推荐,支持导入题库自动判题
网络·网络协议·tcp/ip·jupyter·智能手机·电脑·idea