想要使用 Powershell 将我特别命名的适配器的 IP 地址 v4 放入变量中

Want to put IP address v4 of my specifically named adapter into a variable using Powershell

我的 PC 上有多个网络适配器。

我只想获取称为特定名称的适配器的 IP 地址 v4(没有 headers 或额外内容)并将其存储到变量中以供进一步使用。

我可以 return IP 地址 headers 但不是我想要的。

请帮忙 - 谢谢。

这是我尝试过的:

$ipa = Get-NetIPAddress |
    Where-Object { $_.IfIndex -eq 19 -and $_.InterfaceAlias -eq "LAN2" -and $_.AddressFamily -eq "IPv4" } |
    Select-Object { $_.IPAddress }

编辑:

$ipa = Get-NetIPAddress |  where {$_.InterfaceAlias -eq "LAN2" -and    
$_.AddressFamily -eq "IPv4"} | select -expandproperty ipaddress

上面的代码是 return 我的两个有线适配器的地址,但它 return 至少只是 Ip 地址,没有别的(感谢安东尼)

只有一个叫 "LAN2" - 我只需要那个 - 所以还是卡住了

更新: Austin French 的第二个解决方案非常有效 - 今天稍后会测试 Owls - 谢谢大家 - 非常有用的社区

您可以通过首先使用 get-wmiobject 获取计算机上所有网络适配器的列表,选择您想要的名称,然后将其通过管道传输到 get-netipaddress,然后选择IPAddress 属性 如下所示。

(Get-WmiObject win32_networkadapter | Where-Object {$_.name -eq "YOUR_NAME"} | Get-NetIPAddress).IPAddress

无法访问 get-netipaddress,这是一个非常脏且长的衬垫。将 "Local Area Connection" 更改为您的网络名称。

((([System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ? {$_.Name -eq  "Local Area Connection"}).GetIPProperties() | Select-Object -ExpandProperty 'UniCastAddresses' | ? {$_.IPv4Mask -ne
"0.0.0.0"}) | Select Address).Address.IPAddressToString

使用 Get-netIpAddress,我怀疑这也行得通:

$ipa = (Get-NetIPAddress |
    Where-Object { $_.IfIndex -eq 19 -and $_.InterfaceAlias -eq "LAN2" -and $_.AddressFamily -eq "IPv4" } | `
    Select-Object { $_.IPAddress }).IPAddress

简单的一行

(Get-NetIPConfiguration).ipv4address | where {$_.InterfaceAlias -eq "Lan2"} | foreach { write-host $_.ipaddress}

从启用的网络获取

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE  | select Ipaddress

仅来自特定适配器和 ipv4

Get-WMIObject win32_NetworkAdapterConfiguration | 
  Where-Object { $_.IPEnabled -eq $true } | 
  Foreach-Object { $_.IPAddress } | 
  Foreach-Object { [IPAddress]$_ } | 
  Where-Object { $_.AddressFamily -eq 'LAN2'  } | 
  Foreach-Object { $_.IPAddressToString }