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,总结三条铁律:

  1. ​别记命令记模块​​:网络相关用 ​​NetTCPIP/NetAdapter​​ 模块准没错
  2. ​善用管道符​​:| Format-Table/List 能让结果清晰十倍
  3. ​养成别名习惯​​:把常用命令存为 ​​function​​,比如:
powershell复制
function Get-MyIP { Get-NetIPAddress -AddressFamily IPv4 }

下次直接输 ​​Get-MyIP​​ 秒出结果!

最后送大家一句话:​​PowerShell不是命令行的终点,而是自动化运维的起点​​。当你开始用它批量管理IP地址时,才算真正摸到了网管的大门~