Powershell 确定活动的以太网适配器及其 MAC
Powershell determine active ethernet adapter and his MAC
在 Linux 中,我可以使用 "ip route" 命令确定活动的 Eth 适配器:
vasyl@retail-z3-1:~$ ip route get 8.8.8.8
8.8.8.8 via 10.186.0.1 dev ens4 src 1.1.1.1
有什么方法可以确定哪个适配器名称(和他的 MAC)用于 PS 中的互联网连接?也许是 get-netadapter 或类似的东西。
PS 现在,我正在使用此代码从已知适配器中提取 MAC 地址:
$CurrMac = get-netadapter | Where {$_.name -Match "Ethernet 2"}
$CurrMacaddr = $CurrMac.MacAddress.Replace("-", "")
并且需要自动判断网卡。
UPD1 假设我的主机有 2 个或更多 Eth 适配器。一个用于互联网,休息 - 用于内部网络或不活动。
类似?
$adapters = Get-NetAdapter
foreach ($adapter in $adapters){
if($adapter.Status -eq "Up" -and $adapter.Name.Contains("Ethernet")){
Write-Host $adapter.MacAddress
}
}
但您仍然可以获得更多 MAC 个地址..
或使用Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter
那么
$activeMAC= Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter
Write-Host $activeMAC.MacAddress
那应该 return 只有 1 MAC
在 Linux 中,我可以使用 "ip route" 命令确定活动的 Eth 适配器:
vasyl@retail-z3-1:~$ ip route get 8.8.8.8
8.8.8.8 via 10.186.0.1 dev ens4 src 1.1.1.1
有什么方法可以确定哪个适配器名称(和他的 MAC)用于 PS 中的互联网连接?也许是 get-netadapter 或类似的东西。
PS 现在,我正在使用此代码从已知适配器中提取 MAC 地址:
$CurrMac = get-netadapter | Where {$_.name -Match "Ethernet 2"}
$CurrMacaddr = $CurrMac.MacAddress.Replace("-", "")
并且需要自动判断网卡。
UPD1 假设我的主机有 2 个或更多 Eth 适配器。一个用于互联网,休息 - 用于内部网络或不活动。
类似?
$adapters = Get-NetAdapter
foreach ($adapter in $adapters){
if($adapter.Status -eq "Up" -and $adapter.Name.Contains("Ethernet")){
Write-Host $adapter.MacAddress
}
}
但您仍然可以获得更多 MAC 个地址..
或使用Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter
那么
$activeMAC= Get-NetRoute -DestinationPrefix '0.0.0.0/0' | Get-NetAdapter
Write-Host $activeMAC.MacAddress
那应该 return 只有 1 MAC