如何在Windows中找到蓝牙网络接口的MAC地址(硬件地址)?问题不在于找出地址,问题是要确定网络接口类型是否为蓝牙。
我尝试的两种方法都没有区分以太网卡和蓝牙(至少我没有看到区别) - GetAdaptersAddresses
将蓝牙接口返回为IF_TYPE_ETHERNET_CSMACD
而WMI
返回为{{ 1 {} AdapterTypeID
(与WiFi相同,即使存在无线类型)。
我目前看到的唯一可能性是搜索名称或描述字符串中的文字“bluetooth”但这似乎不是正确的解决方案; - )
答案 0 :(得分:0)
您可以使用BluetoothFindFirstRadio
,BluetoothFindNextRadio
和BluetoothGetRadioInfo
。然后,适配器的本地MAC地址位于address
的字段BLUETOOTH_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);