用curl命令可直接查询公网ip及归属地:ipinfo.io返回完整json含ip、国家、城市等;ifconfig.me/json字段简略;ipapi.co/json免费但限频,支持经纬度。配合jq可精准提取字段,无jq时可用grep粗略筛选,需注意网络稳定性与ip定位精度限制。
直接用终端查公网 ip 和归属地,靠一个 curl 命令加支持地理信息的 api 就能完成,不需要安装额外工具。
用 curl 调用带归属地信息的公网 IP 接口
macOS 自带 curl,只要联网,就能向公开 IP 查询服务发起请求。以下命令返回结果中通常包含 IP、国家、地区、城市、运营商等字段:
- curl ipinfo.io —— 返回 JSON 格式,含 ip、city、region、country、org(运营商)、timezone 等。执行后直接看到结构化信息。
- curl ifconfig.me/json —— 部分版本返回基础 JSON,但字段较简略(通常只有 ip 和 country),稳定性略低于 ipinfo.io。
- curl ipapi.co/json —— 免费版每日限 1000 次,返回字段丰富,含 postal、latitude、longitude,适合需要坐标或邮编的场景。
只提取关键字段,让输出更干净
如果只想看 IP 和国家城市,可配合 jq(需提前安装:brew install jq)做解析:
- curl -s ipinfo.io | jq '.ip, .country, .region, .city'
- curl -s ipapi.co/json | jq '.ip, .country_name, .city, .organization'
不装 jq 的话,也能用系统自带工具粗略提取:例如 curl -s ipinfo.io | grep -E "ip|country|city",但格式不够规整。
注意网络与响应可靠性
这些服务依赖外部网络,若执行无返回或超时,请检查当前联网状态。常见备用方案:
- 换接口:ipinfo.io 不通时,试
curl ipapi.co或curl icanhazip.com(仅 IP,无归属地) - 加超时控制:
curl -m 5 -s ipinfo.io,5 秒未响应即中断,避免卡住 - 归属地信息由服务端根据 IP 库匹配,精度一般到城市级,无法精确到街道或门牌号
不复杂但容易忽略:公网 IP 是你当前路由器对外的出口地址,同一宽带下的所有设备共享这个 IP;归属地是 ISP 注册信息或 IP 分配记录决定的,和你实时物理位置可能有偏差。











