如何在C# .NET 2.0中获取指定类型网卡的MAC地址
获取指定类型网卡的MAC地址(优先以太网,其次WiFi)
以下分平台给出实现方案,均满足优先取以太网(RJ45)MAC、无以太网则取WiFi MAC、排除虚拟/VMware/VPN适配器的需求,且不关心网卡激活状态:
Windows 平台
PowerShell 脚本实现
# 定义需排除的虚拟适配器关键词 $excludeKeywords = @("VMware", "VPN", "Virtual", "Hyper-V") # 筛选物理网卡,排除关键词后按优先级排序(以太网>WiFi>其他) $targetNics = Get-NetAdapter -Physical | Where-Object { $desc = $_.InterfaceDescription !($excludeKeywords | Where-Object { $desc -match $_ }) } | Sort-Object { switch -Regex ($_.InterfaceDescription) { 'Ethernet|RJ45' { 0 } 'Wireless|WiFi|WLAN' { 1 } default { 2 } } } # 输出结果 if ($targetNics.Count -gt 0) { Write-Host "目标MAC地址:$($targetNics[0].MacAddress)" } else { Write-Host "未找到符合条件的物理网卡" }
命令行快速执行
wmic nic where "PhysicalAdapter=True AND NOT Description LIKE '%VMware%' AND NOT Description LIKE '%VPN%' AND NOT Description LIKE '%Virtual%'" get MACAddress,Description | findstr /v "MACAddress" | sort /r /+20
执行后输出的第一条MAC即为优先级最高的目标地址(以太网在前,WiFi在后)
Linux 平台
Bash 脚本实现
#!/bin/bash # 排除的虚拟适配器关键词 exclude=("vmware" "vpn" "virtual" "tun" "tap") # 优先获取以太网MAC(适配eth*/enp*命名规则) ethernet_mac=$(ip link show | grep -E '(eth|enp)' | awk '{print $0}' | grep -v -i "${exclude[@]}" | awk '/link\/ether/ {print $2}' | head -n 1) if [ -n "$ethernet_mac" ]; then echo "以太网MAC地址:$ethernet_mac" else # 无以太网则获取WiFi MAC(适配wlan*/wlp*命名规则) wifi_mac=$(ip link show | grep -E '(wlan|wlp)' | awk '{print $0}' | grep -v -i "${exclude[@]}" | awk '/link\/ether/ {print $2}' | head -n 1) if [ -n "$wifi_mac" ]; then echo "WiFi MAC地址:$wifi_mac" else echo "未找到符合条件的物理网卡" fi fi
macOS 平台
Bash 脚本实现
#!/bin/bash # 排除的虚拟适配器关键词 exclude=("VMware" "VPN" "Virtual") # 优先获取以太网MAC ethernet_mac=$(networksetup -listallhardwareports | awk '/Ethernet/ {getline; getline; print $NF}' | grep -v -F "${exclude[@]}") if [ -n "$ethernet_mac" ]; then echo "以太网MAC地址:$ethernet_mac" else # 无以太网则获取WiFi MAC wifi_mac=$(networksetup -listallhardwareports | awk '/Wi-Fi/ {getline; getline; print $NF}') if [ -n "$wifi_mac" ]; then echo "WiFi MAC地址:$wifi_mac" else echo "未找到符合条件的物理网卡" fi fi
内容的提问来源于stack exchange,提问作者Hello World
相关产品推荐
相关产品推荐

