如何在 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 網站,預覽上述功能的輸出。