最直接方法是用ipconfig | findstr " IPv4 "精准筛选含IPv4地址的行,避开虚拟网卡干扰;PowerShell中可用Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.PrefixOrigin -in "Dhcp","Manual"}排除回环和APIPA地址。

ipconfig 输出太乱,怎么只看 IPv4 地址行
默认 ipconfig 会把所有适配器(包括虚拟网卡、隧道适配器、蓝牙网络等)全打出来,一眼找不到主 IP。最直接的过滤方式是用管道加 findstr:
-
ipconfig | findstr "IPv4"—— 只保留含“IPv4 地址”字样的行,但注意它也会匹配到注释或无关字段 - 更稳妥的是加空格锚定:
ipconfig | findstr " IPv4 "(前后带空格),能避开“IPv4 地址”被截断或误匹配的情况 - 如果连“IPv4”都懒得输,
ipconfig | findstr ":"也能筛出所有带冒号的配置行,再人工扫一眼“IPv4 地址”那行
这个组合不依赖 PowerShell 或额外工具,Windows 7 以上原生支持,适合快速应急。
PowerShell 中 Get-NetIPAddress 怎么排除 127.0.0.1 和 fe80::
Get-NetIPAddress 返回的是对象,天然支持筛选,比文本过滤干净得多。关键在于识别哪些地址不该算“有效业务 IP”:
-
127.0.0.1是回环地址,fe80::/10是链路本地 IPv6,都不参与局域网通信 - 常用过滤写法:
Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.IPAddress -ne "127.0.0.1" -and $_.PrefixLength -eq 24}(假设子网掩码是 255.255.255.0) - 更通用的做法是按地址来源过滤:
Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.PrefixOrigin -in "Dhcp","Manual"},这样自动跳过 APIPA(169.254.x.x)和回环
注意 PrefixOrigin 字段在 Windows 10 1803+ 和 Windows 11 才稳定可用,老系统建议优先用 Get-NetIPConfiguration 配合 IPv4Address 属性。
输出结果里有多个 IPv4 地址,哪个才是当前正在用的
一台电脑插着网线又连着 Wi-Fi、还装了 Docker 或 VMware,ipconfig 就可能列出四五个 IPv4。判断依据不是“谁排第一”,而是看对应适配器的状态和路由表:
- 先确认哪个适配器是“已连接”:在
ipconfig /all输出中找媒体状态 . . . . . . . . . : 媒体已连接的条目 - 再看它的默认网关是否非空:
默认网关 . . . . . . . . . : 192.168.1.1—— 有网关的才是实际走外网的主路径 - 终极验证法:
route print -4 | findstr "^ 0\.0\.0\.0",查 IPv4 默认路由的接口索引,再回溯到对应适配器的 IPv4 地址
别光盯着“无线局域网适配器 WLAN”就认定它是主 IP——有时候你开着热点,Wi-Fi 适配器反而是被共享出去的从属角色。
导出 IP 信息到文件时中文乱码怎么办
用 ipconfig /all > ip.txt 直接重定向,Windows 默认用 GBK 编码写入,但记事本打开常显示乱码(尤其含中文适配器名时)。根本原因是记事本默认用 UTF-8 解析,而没 BOM 的 GBK 文件会被误判:
- 临时解法:用
notepad ip.txt打开后,点“另存为”→ 编码选“ANSI”(即 GBK),再保存 - 一劳永逸:改用 PowerShell 导出:
ipconfig /all | Out-File -Encoding utf8 ip.txt,生成带 UTF-8 BOM 的文件,记事本能正确识别 - 若需兼容 Excel 等工具,推荐用
Get-NetIPConfiguration | Export-Csv -Path ip.csv -Encoding utf8,结构化且无编码歧义
命令行重定向的编码行为是隐式且不可控的,只要涉及中文路径或中文描述,优先切到 PowerShell + Out-File 或 Export-Csv。

















