#include <winsock2.h>
#include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "ws2_32.lib")
QString getMacAddress(const QString& ipAddress)
{
QString macAddress;
IPAddr destIp = inet_addr(ipAddress.toStdString().c_str());
ULONG macAddr[2] = {0};
ULONG physAddrLen = 6;
UCHAR* physAddr = new UCHAR[physAddrLen+2];
DWORD dwRetVal = SendARP(destIp, 0, macAddr, &physAddrLen);
if (dwRetVal == NO_ERROR) {
memcpy(physAddr, &macAddr, sizeof(macAddr));
if (physAddr != NULL) {
char buffer[18];
sprintf_s(buffer, "%02X:%02X:%02X:%02X:%02X:%02X",
physAddr[0], physAddr[1], physAddr[2],
physAddr[3], physAddr[4], physAddr[5]);
macAddress = buffer;
}
}
delete[] physAddr; // 使用delete[]来释放内存
return macAddress;
}
Qt C++局域网内根据IP获取MAC地址
最新推荐文章于 2024-08-03 16:36:39 发布