PowerShell查看IP地址全攻略?5大场景解决方案速查,PowerShell高效管理IP地址,五大实战场景解决方案解析
"昨天公司断网全员抓瞎,老板让我用PowerShell查IP,结果对着黑窗口发愣半小时..." 这种社 *** 现场你是否经历过?今天咱们就结合十年运维经验,手把手教你用PowerShell玩转IP查询!(文末有老网管私藏脚本)
场景一:日常快速查看局域网IP
"急着开会要报IP地址?三秒搞定!"
1️⃣ 按下 Win+X 选择 Windows PowerShell
2️⃣ 输入命令:
powershell复制Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias,IPAddress
3️⃣ 认准 "以太网"/"WLAN" 对应的地址
👉避坑技巧:遇到多个网卡时,用 -InterfaceAlias 参数精确筛选:
powershell复制Get-NetIPAddress -InterfaceAlias "以太网 3" -AddressFamily IPv4
场景二:紧急排查IP地址冲突
"打印机突然 *** ,疑似IP打架?"
✅ 第一步:定位冲突设备
powershell复制arp -a | findstr "冲突IP地址"
✅ 第二步:揪出捣蛋鬼MAC地址
powershell复制Get-NetNeighbor -IPAddress "192.168.1.100" | Format-List
✅ 第三步:强制释放IP
powershell复制ipconfig /release && ipconfig /renew
实测案例:某企业财务部用这招,10分钟解决20台电脑的IP混战
场景三:批量导出全公司IP信息
"老板要300台电脑的IP-MAC对照表?"
🔥 超高效脚本:
powershell复制$csvPath = "D:IP_Report_$(Get-Date -Format yyyyMMdd).csv"Get-NetAdapter | Where Status -eq 'Up' | ForEach-Object {[PSCustomObject]@{主机名 = $env:COMPUTERNAME网卡名称 = $_.NameIP地址 = (Get-NetIPAddress -InterfaceIndex $_.ifIndex -AddressFamily IPv4).IPAddressMAC地址 = $_.MacAddress}} | Export-Csv -Path $csvPath -NoTypeInformation
运行后直接生成带时间戳的Excel表格
场景四:查看公网IP被墙怎么办
"访问外网总报错?先查真实出口IP!"
🛠️ 三大查询姿势:
1️⃣ *** API法:
powershell复制(Invoke-RestMethod http://ipinfo.io/json).ip
2️⃣ 第三方网站直连:
powershell复制(Invoke-WebRequest ifconfig.me).Content
3️⃣ 路由器穿透查询:
powershell复制(Get-NetRoute -DestinationPrefix 0.0.0.0/0).NextHop | ForEach-Object {Test-NetConnection $_ -TraceRoute}
注意:企业用户建议用第3种,避免安全策略拦截
场景五:高级玩家必备网络画像
"甲方要网络拓扑图?PowerShell也能画!"
✨ 生成带网关/DNS的全息报告:
powershell复制Get-NetAdapter | Where Status -eq 'Up' | ForEach-Object {$adapter = $_$ip = Get-NetIPAddress -InterfaceIndex $adapter.ifIndex -AddressFamily IPv4$dns = Get-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -AddressFamily IPv4[PSCustomObject]@{网卡 = $adapter.Name状态 = $adapter.StatusIPv4 = $ip.IPAddress子网掩码 = "/"+$ip.PrefixLength网关 = (Get-NetRoute -InterfaceIndex $adapter.ifIndex | Where DestinationPrefix -eq "0.0.0.0/0").NextHopDNS = $dns.ServerAddresses -join ","}} | Format-Table -AutoSize
输出效果堪比专业网络扫描器
六大常见翻车现场救援
1️⃣ 命令报错:术语无法识别
👉 解决方案:升级PowerShell到5.0以上版本,运行:
powershell复制Install-Module -Name NetAdapter -Force
2️⃣ 查不到WIFI地址
👉 隐藏命令:
powershell复制Get-NetAdapter -Physical | Where MediaType -eq "Native 802.11"
3️⃣ 结果太多眼花缭乱
👉 过滤神器:
powershell复制Get-NetIPAddress | Where {$_.IPAddress -like "192.168.*"} | Format-Table
4️⃣ 需要历史IP记录
👉 监控脚本:
powershell复制while($true) {Get-NetIPAddress -AddressFamily IPv4 | Out-File "IP_Log.txt" -AppendStart-Sleep -Seconds 300}
5️⃣ 权限不足被拒绝
👉 必杀技:右键选择 Windows PowerShell(管理员)
6️⃣ 跨设备远程查询
👉 远程执行:
powershell复制Invoke-Command -ComputerName PC01 -ScriptBlock {Get-NetIPAddress}
网管私房话
用了十年PowerShell,总结三条铁律:
- 别记命令记模块:网络相关用 NetTCPIP/NetAdapter 模块准没错
- 善用管道符:| Format-Table/List 能让结果清晰十倍
- 养成别名习惯:把常用命令存为 function,比如:
powershell复制function Get-MyIP { Get-NetIPAddress -AddressFamily IPv4 }
下次直接输 Get-MyIP 秒出结果!
最后送大家一句话:PowerShell不是命令行的终点,而是自动化运维的起点。当你开始用它批量管理IP地址时,才算真正摸到了网管的大门~