2

如何在Windows中找到蓝牙网络接口的MAC地址(硬件地址)?问题不是找到地址,问题是识别网络接口类型是否为蓝牙。

我尝试过的两种方法都没有区分以太网卡和蓝牙(至少我没有看到区别)-GetAdaptersAddresses返回蓝牙接口(IF_TYPE_ETHERNET_CSMACD与WiFi 相同,尽管存在无线类型WMIAdapterTypeIDEthernet 802.3

我目前看到的唯一可能性是搜索文本“蓝牙”的名称或描述字符串,但这似乎不是好的解决方案;-)

4

1 回答 1

1

您可以使用BluetoothFindFirstRadio和。适配器的本地 MAC 地址则位于以下字段中:BluetoothFindNextRadioBluetoothGetRadioInfoaddressBLUETOOTH_RADIO_INFO

BLUETOOTH_FIND_RADIO_PARAMS btfrp;
btfrp.dwSize = sizeof(btfrp);
HANDLE hRadio;
HBLUETOOTH_RADIO_FIND hFind = BluetoothFindFirstRadio(&btfrp, &hRadio);

if(hFind == NULL)
{
    DWORD err = GetLastError();
    switch(err)
    {
    case ERROR_NO_MORE_ITEMS:
        // No bluetooth radio found
        break;
    default:
        // Error finding radios
    }

    return;
}
do
{
    BLUETOOTH_RADIO_INFO radioInfo;
    radioInfo.dwSize = sizeof(radioInfo);
    DWORD err = BluetoothGetRadioInfo(hRadio, &radioInfo);
    if(err != ERROR_SUCCESS)
    {
       // Error during BluetoothGetRadioInfo
        continue;
    }
    // The mac address is in radioInfo.address

}
while(BluetoothFindNextRadio(hFind, &hRadio));


BluetoothFindRadioClose(hFind);
于 2014-12-03T15:04:52.677 回答