我的IP地址
curl ipin.io
标准 curl
命令适用于大多数 Unix 类系统。获取JSON格式:
curl ipin.io/json
curl --ipv4 ipin.io
在Termux中强制使用IPv4。带超时可选:
curl --connect-timeout 5 ipin.io
(Invoke-WebRequest -Uri "http://ipin.io").Content
简化版 PowerShell 命令。获取JSON格式:
(Invoke-WebRequest -Uri "http://ipin.io/json").Content | ConvertFrom-Json
wget -qO- ipin.io
安静模式(-q
)并输出到stdout(-O-
)。Alpine Linux(iSH基础):
apk add curl && curl ipin.io
wget -qO- --timeout=10 ipin.io
推荐用于资源受限设备。如无 wget
:
opkg install wget-ssl
curl --max-time 5 ipin.io
极简容器如无curl可用:
docker run --rm alpine wget -qO- ipin.io
fetch('https://ipin.io/get_client_ip')
.then(r => r.ok ? r.json() : Promise.reject('API错误'))
.then(data => console.log('IP:', data.ip))
.catch(e => console.error('错误:', e))
基础实现并带有错误处理。实际生产建议:
- 用AbortController添加超时处理
- 跨域请求时需注意CORS要求
- 缓存结果以避免频繁访问受限
注意:
浏览器API因代理/VPN等可能返回与服务器不同的IP。Web应用中建议用服务端检测获取真实IP。
IP查询工具详细介绍
本工具是一套完整的跨平台公网IP查询解决方案,专为开发者和系统管理员设计,可在各种复杂网络环境下准确获取设备的公网IP地址信息。不同于传统IP查询服务,本方案针对不同操作系统和运行环境进行了深度优化,确保在各类特殊场景下都能稳定工作。
工具支持包括macOS/Linux终端、Windows PowerShell、Android Termux终端、iOS iSH终端应用、OpenWRT路由器系统以及Docker容器环境在内的多种平台。每个平台都提供了经过验证的最佳实践命令,考虑了各平台的网络栈实现差异、默认工具链特性以及典型配置限制。
特别值得一提的是,我们还提供了完整的浏览器端JavaScript实现方案,基于现代fetch API设计,支持Promise异步调用,方便前端开发者直接集成到Web应用中。该方案已处理好跨域(CORS)问题,并包含完善的错误处理机制。
所有查询接口均支持IPv4和IPv6双栈协议,可根据网络环境自动选择最优查询方式。返回结果提供纯文本和JSON两种格式,JSON格式包含完整的IP相关信息,如地理位置、网络运营商等扩展数据。
详细使用指南
1. 环境适配命令
根据不同运行环境,我们推荐使用以下经过优化的命令:
-
类Unix系统(macOS/Linux/BSD等):
curl -s ipin.io
curl工具简单高效,-s参数静默模式。建议加超时参数:
--connect-timeout 3
-
Windows系统:
(Invoke-WebRequest -Uri "http://ipin.io" -UseBasicParsing).Content
PowerShell原生命令,老系统可用:
(New-Object Net.WebClient).DownloadString("http://ipin.io")
-
移动设备:
# Android Termux curl --ipv4 --silent ipin.io # iOS iSH wget -qO- --no-check-certificate ipin.io
Android强制IPv4避免双栈问题,iOS需跳过证书校验。建议增加重试逻辑提高稳定性。
2. 高级使用技巧
-
JSON格式输出:
命令URL后加
/json
获取结构化数据:curl ipin.io/get_client_ip
返回示例:
{"ip": "203.0.113.45"}
-
网络调试技巧:
复杂网络环境下建议如下参数组合:
curl --retry 2 --connect-timeout 5 --max-time 10 ipin.io
命令5秒内建立连接,最多重试2次,总请求不超10秒。