• 获取Mac地址


     netapi32.lib
    #include <NB30.h>; typedef struct _ASTAT_ { ADAPTER_STATUS adapt; NAME_BUFFER NameBuff[30]; }ASTAT, *PASTAT; void GetNetCardMac(int lana_num, char *pszOut) { NCB ncb; UCHAR uRetCode; ASTAT Adapter; memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBRESET; ncb.ncb_lana_num = lana_num; uRetCode = Netbios(&ncb); memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBASTAT; ncb.ncb_lana_num = lana_num; //Ö¸¶¨Íø¿¨ºÅ strcpy((char *)ncb.ncb_callname, "* "); ncb.ncb_buffer = (unsigned char *)&Adapter; ncb.ncb_length = sizeof(Adapter); uRetCode = Netbios(&ncb); if (uRetCode == 0) { sprintf(pszOut, "%02X%02X%02X%02X%02X%02X", Adapter.adapt.adapter_address[0], Adapter.adapt.adapter_address[1], Adapter.adapt.adapter_address[2], Adapter.adapt.adapter_address[3], Adapter.adapt.adapter_address[4], Adapter.adapt.adapter_address[5] ); //strcpy(pszOut, "00E04C0F7847"); //strcpy(pszOut, "00E04C0F783C"); } } void GetCardInfo(int iIdx, char *pszMac) { NCB ncb; UCHAR uRetCode; LANA_ENUM lana_enum; memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (unsigned char *)&lana_enum; ncb.ncb_length = sizeof(lana_enum); uRetCode = Netbios(&ncb); for (int i = 0; i < lana_enum.length; ++i) { if (i == iIdx) { GetNetCardMac(lana_enum.lana[i], pszMac); } } }
  • 相关阅读:
    vlc音视频开发(二)环境搭建(VS篇)
    vlc音视频开发(一)环境搭建(qt篇)
    Qt国际化
    Qt解析王者荣耀英雄JSON文件
    Qt使用spdlog日志
    windows核心编程之多进程多线程,线程的同步互斥
    第十八关——写在最后
    第十七关——搜索优化
    第十六关——动态规划
    第十五关——网络流
  • 原文地址:https://www.cnblogs.com/klxll/p/3240402.html
Copyright © 2020-2023  润新知