如何在 JavaScript 中获取客户端 IP 地址
Kirill Ibrahim
2023年1月30日
2020年11月24日
-
在 JavaScript 中使用
Ipify
应用程序获取客户端 IP 地址 -
在 JavaScript 中使用
Ipinfo
应用程序获取客户端 IP 地址 -
在 JavaScript 中使用
Abstract
应用程序获取客户端 IP 地址
IP 地址是一个数字的组合,它为你的网络硬件提供了一个独特的地址,它就像一个指纹,或者就像一个人有一个电子邮件地址来接收电子邮件。它将你的计算机与网络中的其他设备、网络以及世界各地的设备连接起来。
JavaScript 通过第三方应用获取一个属于客户端的公共 IP 地址。第三方应用程序获取用户 IP 地址,并以三种格式返回-纯文本、JSON 和 JSONP 格式。互联网上有几十种这样的应用。
在本文中,我们将介绍三种最流行的 JavaScript 获取 IP 地址的工具–ipify
、ipinfo
和 Abstract
。
在 JavaScript 中使用 Ipify
应用程序获取客户端 IP 地址
ipify
是一个开源的应用程序。你可以在[GitHub 仓库)]中获取代码。即使你每分钟发出数百万个请求,也没有限制。
例子
请安装 Axios
(浏览器和 node.js 的 HTTP 客户端),或者为它包含 CDN。
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
async function getIpClient() {
try {
const response = await axios.get('https://api.ipify.org?format=json');
console.log(response);
} catch (error) {
console.error(error);
}
}
getIpClient();
</script>
输出:
data: {ip: "198.16.76.28"}
在 JavaScript 中使用 Ipinfo
应用程序获取客户端 IP 地址
Ipinfo
应用程序有使用限制。你可以每天免费提出 1,000 次请求,或注册一个免费计划,每月可获得 50,000 次免费请求。
例子
async function getIpClient() {
try {
const response = await axios.get('https://ipinfo.io/json');
console.log(response);
} catch (error) {
console.error(error);
}
}
getIpClient();
输出:
{
city: "Amsterdam"
country: "NL"
ip: "198.16.76.28"
loc: "52.3740,4.8897"
org: "AS174 Cogent Communications"
postal: "1012"
readme: "https://ipinfo.io/missingauth"
region: "North Holland"
timezone: "Europe/Amsterdam"
}
在 JavaScript 中使用 Abstract
应用程序获取客户端 IP 地址
Abstract
应用程序也有每月 20,000 次免费请求的限制。而且即使是免费计划,也需要注册才能获得 API 密钥。
例子:请访问 Abstract
async function getIpClient() {
try {
const response = await axios.get('https://ipgeolocation.abstractapi.com/v1/?api_key=<your_api_key>');
console.log(response);
} catch (error) {
console.error(error);
}
}
getIpClient();
请访问 Abstract
网站,预览上述功能的输出。