IPIPNOW
中文
한국어English日本語中文

如何用curl或API查询自己的IP?

在终端输入curl ipnow.kr,当前连接的公网IP会立即以一行文字输出;使用curl ipnow.kr/json则会以JSON格式返回位置、运营商、User-Agent等详细信息。在Windows PowerShell中也能用类似的方式快速查询。

最后更新

您的公网IP地址
216.73.216.214
查看我的 IP 详情

用curl一行查看IP

在终端输入curl ipnow.kr,会直接以一行文字输出当前的公网IP,而不是HTML页面。curl ipnow.kr/ip同样只返回一行IP。

这两个地址都便于在脚本中直接存入变量使用,常被用于服务器状态检查脚本或确认远程服务器的公网IP。

用JSON API获取详细信息

执行curl -s ipnow.kr/json可以获得JSON格式的响应。如果安装了jq,用curl -s ipnow.kr/json | jq可以整理成更易读的格式。

JSON中包含ip、ip_version、country_code、country、region、city、latitude、longitude、asn、isp、as_org、user_agent、browser、browser_version、os、device、is_bot、is_ai、bot_name、accept_language、protocol、time等字段。

如何分别强制查询IPv4和IPv6?

使用curl -4 ipnow.kr会强制通过IPv4连接,查看IPv4公网地址;使用curl -6 ipnow.kr则强制通过IPv6连接,查看IPv6地址。如果两者结果不同,说明该设备或服务器同时支持IPv4和IPv6的双栈环境。

在Windows PowerShell中查询

在PowerShell中,(Invoke-WebRequest ipnow.kr/ip).Content可以只获取IP字符串,而irm ipnow.kr/json(Invoke-RestMethod的别名)可以直接把JSON响应解析为对象,按字段分别处理。

如何在脚本中自动获取IP?

在bash脚本中,可以用MYIP=$(curl -s ipnow.kr/ip)这样的写法存入变量,直接用于部署脚本或防火墙规则。

在JavaScript中可以用fetch("https://ipnow.kr/json").then(r => r.json()).then(data => console.log(data.ip))这样的方式调用,由于CORS对所有来源都开放,在浏览器中直接调用也不会被阻止。

如何用curl或API查询自己的IP?:操作步骤

  1. 只查看IP在终端执行curl ipnow.krcurl ipnow.kr/ip,直接输出公网IP。
  2. 用JSON查看详细信息执行curl -s ipnow.kr/json,如果需要可以用| jq整理成易读格式。
  3. 强制指定IPv4/IPv6curl -4 ipnow.krcurl -6 ipnow.kr只查看想要的地址类型。
  4. 在PowerShell中查询执行(Invoke-WebRequest ipnow.kr/ip).Contentirm ipnow.kr/json
  5. 接入脚本在bash中用$(curl -s ipnow.kr/ip)存入变量,在JavaScript中用fetch调用/json取出需要的字段。

常见问题

在浏览器中用fetch调用会出现CORS错误吗?

ipnow.kr的API对所有来源都开放了CORS(Access-Control-Allow-Origin: *),因此无需专门的服务器,可以直接在浏览器JavaScript中调用。

使用API需要认证密钥吗?

不需要。无需注册账号或申请API密钥,任何人都可以免费用curl或fetch直接调用。

curl ipnow.kr和curl ipnow.kr/json有什么区别?

curl ipnow.krcurl ipnow.kr/ip只返回一行IP地址,而curl ipnow.kr/json会以JSON格式返回位置、运营商、User-Agent等详细信息。

为什么JSON里也包含User-Agent字段?

这是为了同时记录发起请求的客户端(curl、浏览器等)的User-Agent,方便知道是在什么环境下查询的。关于User-Agent本身的说明请参考什么是User-Agent