我想使用Get-WmiObject Win32_NetworkAdapterConfiguration来返回网卡的IP地址。不幸的是,我无法弄清楚如何格式化输出以仅显示IPv.4地址。
Get-WmiObject Win32_NetworkAdapterConfiguration | Select IPAddress | Where-Object {$_.IPaddress -like "192.168*"}
显示器:
IPAddress
---------
{192.168.56.1, fe80::8980:15f4:e2f4:aeca}
以上面的输出为例,我希望它只返回192.168.56.1(有些客户端有多个NIC,因此是“Where-Object”)
答案 0 :(得分:7)
IPAddress
属性为string[]
,因此以下内容应如下:
gwmi Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } | # filter the objects where an address actually exists
Select -Expand IPAddress | # retrieve only the property *value*
Where { $_ -like '192.168.*' }
答案 1 :(得分:3)
添加更快的答案(避免列表中的Where-Object和类似操作):
@(@(Get-WmiObject Win32_NetworkAdapterConfiguration | Select-Object -ExpandProperty IPAddress) -like "*.*")[0]
希望这有助于
答案 2 :(得分:1)
以为我会在上面分享我自己的变体,以防有人帮忙。只有一行:
Get-WmiObject win32_networkadapterconfiguration | where { $_.ipaddress -like "1*" } | select -ExpandProperty ipaddress | select -First 1
干杯。
答案 3 :(得分:0)
(Get-WmiObject win32_Networkadapterconfiguration | Where-Object {$ _.ipaddress -notlike $ null})。IPaddress | Select-Object -First 1
希望这会有所帮助!
答案 4 :(得分:0)
(Get-WmiObject Win32_NetworkAdapterConfiguration | where { (($_.IPEnabled -ne $null) -and ($_.DefaultIPGateway -ne $null)) } | select IPAddress -First 1).IPAddress[0]
返回默认网关的网络连接的IP地址。 这正是您在大多数情况下所需要的:)
与Powershell 2.0(Windows XP)及更新版本兼容。