一个获取IP详细信息接口(含JSONP服务)

本文最后更新于$day天前,文中所描述的信息可能已发生改变。

I.IP接口

现在提供详细IP接口的服务已经不太多,要不就是只有IP,或者简略详细位置,又或许直接下载IP数据库,自己编写。例如我之前的文章。又或许只有服务器接口,不能使用JS调用。所以分享一个能使用JSONP获取详细信息的接口

II.ip-api.com

详细可以查看以下网址:https://ip-api.com/docs

1
http://ip-api.com/json/*{query}*?callback=*{callback}*

query参数可以忽略,就是查询本机信息,方便网页作者来观察来访访问者详情,或者是否来自机房IP。非常详细。免费服务有一个缺点,不能使用HTTPS。

III.IPIP.net旗下接口

详细可以查看:https://www.myip.la/

1
2
3
4
#!/bin/bash

ip=$(curl -s https://api.myip.la)
echo "My public IP address is: $ip"

缺点是没有JSONP服务,返回的信息也非常粗略,无法判断是否来自机房。

IV.ipify 接口

挺无聊的,只是返回一个IP地址,写了一个网站和非常多的语言的例子

1
2
3
var httpClient = new HttpClient();
var ip = await httpClient.GetStringAsync("https://api.ipify.org");
Console.WriteLine($"My public IP address is: {ip}");

此接口很多脚本用来获取本机IP,方便获取IPV4和V6的本机IP,不支持任何查询功能。人家还有一个卖数据库服务,很贵,也没有免费版。

V.IP.SB接口

一个外国接口从speedtest-x发现 https://ip.sb/api/

1
2
3
4
5
6
7
8
9
10
<script type="application/javascript">
function getgeoip(json){
document.write("Geolocation information for IP address: ", json.ip);
document.write("Country: ", json.country);
document.write("Latitude: ", json.latitude);
document.write("Longitude: ", json.longitude);
}
</script>

<script type="application/javascript" src="https://api.ip.sb/geoip?callback=getgeoip"></script>

暂时没看到网站有收费服务。他的IP数据由:https://www.maxmind.com/ 提供