我正在使用 QNetworkInterface 类来获取网络接口的mac id。但是,没有选项来获取网络接口的传输名称(GUID)。有人可以帮我这个。请参考图像,我需要使用Qt api从图像中突出显示的部分。
答案 0 :(得分:0)
经过一些谷歌搜索后,我可以获得传输名称。这是代码: -
#include <iostream>
#include <WinSock2.h>
#include <iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib")
using namespace std;
int main() {
PIP_INTERFACE_INFO pInfo = nullptr;
ULONG ulOutBufLen = 0;
DWORD dwRetVal = 0;
if (GetInterfaceInfo(NULL, &ulOutBufLen)
== ERROR_INSUFFICIENT_BUFFER) {
pInfo = (IP_INTERFACE_INFO *)malloc(ulOutBufLen);
}
dwRetVal = GetInterfaceInfo(pInfo, &ulOutBufLen);
if (dwRetVal == NO_ERROR) {
printf("Number of Adapters: %ld\n\n", pInfo->NumAdapters);
for (auto i = 0; i<pInfo->NumAdapters; i++) {
wcout<<"Adapter Name: " << pInfo->Adapter[i].Name << endl;
printf("Adapter Index: %ld\n", pInfo->Adapter[i].Index);
printf("\n");
}
}
else {
printf("GetInterfaceInfo failed.\n");
LPVOID lpMsgBuf;
if (FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwRetVal,
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT), /* Default language */
(LPTSTR)&lpMsgBuf,
0,
NULL)) {
printf("Error: %s", lpMsgBuf);
}
LocalFree(lpMsgBuf);
}
return 0;
}