可一次性获取局域网IP和公网IP:用CMD单条命令for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IPv4"') do @echo 局域网IP: %i & @curl -s https://api.ipify.org 2>nul || echo 公网IP: 无法访问外网,自动过滤无效地址并调用API;若无curl,推荐PowerShell方案或批处理封装。

你需要在Windows 10的CMD中一次性获取本机局域网IP和公网IP,而不是分别打开浏览器和命令行来回切换,避免手动比对出错或漏看关键地址段。
用单条CMD命令同时查出局域网IP和公网IP
按下 Win+R,输入 cmd 回车,粘贴执行以下命令:
for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IPv4"') do @echo 局域网IP: %i & @curl -s https://api.ipify.org 2>nul || echo 公网IP: 无法访问外网
该命令会先从本地网络配置中提取所有IPv4地址(自动过滤127.0.0.1和169.254.x.x等无效地址),再调用curl请求权威公网IP接口。若系统未预装curl,跳过公网部分并提示“无法访问外网”——这是正常反馈,不表示命令失败。
无curl环境下的纯CMD替代方案
方法一:使用PowerShell兼容指令(Win10默认启用)
在CMD窗口中直接运行:
powershell -c "$l=ipconfig|findstr 'IPv4';$p=(Invoke-RestMethod https://api.ipify.org -TimeoutSec 3) 2>$null; if($p){echo \"局域网IP: $(($l -split ':')[-1].trim())`n公网IP: $p\"}else{echo \"局域网IP: $(($l -split ':')[-1].trim())`n公网IP: 请求超时\"}"
注意:首次运行PowerShell可能触发执行策略警告,此时只需关闭CMD重开即可绕过——【无需管理员权限,也不需修改系统策略】。
方法二:批处理封装(适合反复使用)
新建一个文本文件,粘贴以下内容,保存为 ipall.bat:
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IPv4"') do set "lan=%%i"&& goto gotlan
:gotlan
set "lan=%lan: =%"
echo 局域网IP: %lan%
ping -n 1 -w 1000 api.ipify.org >nul 2>&1 && (for /f "delims=" %%j in ('powershell -c "Invoke-RestMethod https://api.ipify.org" 2^>nul') do echo 公网IP: %%j) || echo 公网IP: DNS解析失败
双击运行,结果直接显示两行IP,清晰分离。
验证公网IP是否真实有效
第一步:确认局域网IP属于私有地址段——即必须是 10.x.x.x、172.16–31.x.x 或 192.168.x.x 范围内;若出现 100.64.x.x,说明你处于运营商CGNAT环境,此时CMD查到的“公网IP”实为共享出口地址,不具备独立端口映射能力。
第二步:浏览器打开 ip.cn,比对页面显示的IP与CMD中返回的公网IP是否完全一致;不一致则说明CMD中调用的API节点缓存异常,应改用 https://icanhazip.com 替换命令中的URL。
第三步:在CMD中执行 nslookup myip.opendns.com resolver1.opendns.com,查看响应体中“Address”字段——该值与浏览器查得的公网IP一致,即为当前网络真实的对外出口IP。

















