如何在 JavaScript 中获取客户端 IP 地址

Kirill Ibrahim 2023年12月11日
  1. 在 JavaScript 中使用 Ipify 应用程序获取客户端 IP 地址
  2. 在 JavaScript 中使用 Ipinfo 应用程序获取客户端 IP 地址
  3. 在 JavaScript 中使用 Abstract 应用程序获取客户端 IP 地址
如何在 JavaScript 中获取客户端 IP 地址

IP 地址是一个数字的组合,它为你的网络硬件提供了一个独特的地址,它就像一个指纹,或者就像一个人有一个电子邮件地址来接收电子邮件。它将你的计算机与网络中的其他设备、网络以及世界各地的设备连接起来。

JavaScript 通过第三方应用获取一个属于客户端的公共 IP 地址。第三方应用程序获取用户 IP 地址,并以三种格式返回-纯文本、JSON 和 JSONP 格式。互联网上有几十种这样的应用。

在本文中,我们将介绍三种最流行的 JavaScript 获取 IP 地址的工具–ipifyipinfoAbstract

在 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 网站,预览上述功能的输出。