想要使用 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 }
我的 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 }