"ip": "123.45.67.89",
"city": "Beijing",
"region": "Beijing",
"country": "CN",
"loc": "39.9042,116.4074",
"org": "AS12345 Example ISP",
"timezone": "Asia/Shanghai"
}

示例2:ip-api.com

curl http://ip-api.com/json

返回結果示例:

{
"status": "success",
"country": "China",
"countryCode": "CN",
"region": "BJ",
"regionName": "Beijing",
"city": "Beijing",
"zip": "",
"lat": 39.9042,
"lon": 116.4074,
"timezone": "Asia/Shanghai",
"isp": "Example ISP",
"org": "",
"as": "AS12345 Example ISP",
"query": "123.45.67.89"
}

這些接口簡單易用,適合快速獲取IP地址及相關信息。需要注意的是,部分API可能有調用頻率限制,需根據實際情況選擇合適的服務。

2. 使用命令行工具

在Linux或macOS系統中,可以通過命令行工具查看當前IP地址。

方法1:使用curl命令

curl ifconfig.me

該命令會直接返回當前公網IP地址。

方法2:使用dig命令

dig +short myip.opendns.com @resolver1.opendns.com

該命令通過OpenDNS服務器查詢當前IP地址。

方法3:使用hostname命令

hostname -I

該命令會返回當前設備的所有IP地址(包括內網IP)。

方法4:使用ip命令

ip addr show

該命令會顯示網絡接口的詳細信息,包括IP地址、子網掩碼等。

3. 使用編程語言獲取IP地址

如果你需要在程序中動態獲取IP地址,可以使用以下方法。

Python示例

import requests

def get_public_ip():
response = requests.get('https://api.ipify.org?format=json')
ip_data = response.json()
return ip_data['ip']

print("當前IP地址:", get_public_ip())

Node.js示例

const axios = require('axios');

async function getPublicIp() {
const response = await axios.get('https://api.ipify.org?format=json');
return response.data.ip;
}

getPublicIp().then(ip => console.log("當前IP地址:", ip));

這些代碼通過調用第三方API接口獲取當前IP地址,適合在開發中使用。

4. 使用瀏覽器JavaScript獲取IP地址

在Web開發中,可以通過JavaScript獲取用戶的IP地址。

示例代碼

fetch('https://api.ipify.org?format=json')
.then(response => response.json())
.then(data => {
console.log("當前IP地址:", data.ip);
});

該方法適合在前端頁面中獲取用戶的IP地址。需要注意的是,由于瀏覽器的安全限制,某些情況下可能無法直接獲取IP地址。

5. 使用服務器端獲取客戶端IP地址

在服務器端(如Nginx、Apache或后端框架),可以通過以下方式獲取客戶端的IP地址。

Nginx配置

在Nginx配置文件中,添加以下內容:

server {
listen 80;
server_name example.com;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}

在后端代碼中,可以通過X-Real-IPX-Forwarded-For頭獲取客戶端IP地址。

Flask示例

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
client_ip = request.headers.get('X-Real-IP') or request.remote_addr
return f"客戶端IP地址:{client_ip}"

if __name__ == '__main__':
app.run()

四、注意事項

  1. 隱私問題:獲取用戶IP地址可能涉及隱私問題,需遵守相關法律法規。例如,歐盟的《通用數據保護條例》(GDPR)對用戶數據的收集和使用有嚴格規定。
  2. 代理服務器:如果用戶通過代理服務器訪問,獲取的IP地址可能是代理服務器的地址。此時,可以通過X-Forwarded-For頭獲取真實IP地址。
  3. IPv6支持:部分接口可能不支持IPv6地址,需根據需求選擇合適的接口。
  4. API限制:部分公共API可能有調用頻率限制或收費政策,需仔細閱讀相關文檔。

五、總結

查看當前IP地址的接口方法多種多樣,可以根據具體需求選擇合適的方式。無論是通過公共API、命令行工具,還是編程語言和服務器端配置,都能輕松實現IP地址的獲取。在實際應用中,建議結合隱私保護和安全性考慮,選擇合適的方案。

上一篇:

集成AI進入App的工具與方法:構建智能應用的專業指南

下一篇:

AdCash是什么?全面解析這一領先的廣告平臺
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費