獲取指定網絡卡的MAC位址

2021-06-25 14:26:43 字數 1245 閱讀 8555

由於終端裝置多網絡卡使用的問題,以前使用netbios()獲取網絡卡mac位址的方法可能導致不可靠的問題。

現推薦大家使用如下方法實現:

cstring getlicense(cstring strmac)

cstring getmacbyname(cstring strname)

strcat(szfile, "\\ip.txt");   

strcpy(szcmd, "/c ipconfig /all >");

strcat(szcmd, szfile);

shellexecuteinfo shexecinfo = ;

shexecinfo.cbsize = sizeof(shellexecuteinfo);

shexecinfo.fmask = see_mask_nocloseprocess;

shexecinfo.lpfile = "cmd.exe"; 

shexecinfo.lpparameters = szcmd; 

shexecinfo.nshow = sw_hide;

shellexecuteex(&shexecinfo);

waitforsingleobject(shexecinfo.hprocess,infinite);

//    shellexecute(null, "open", "cmd.exe", szcmd, null, sw_hide);

file* fp = fopen(szfile, "r");

if(!fp) return "";

fseek(fp, 0, seek_end);

int len = ftell(fp);

char* pdata=(char*)malloc(len+1);

memset(pdata, 0x00, len+1);

fseek(fp, 0, seek_set);

fread(pdata, 1, len, fp);

fclose(fp);

char* ppos=strstr(pdata, strname2.getbuffer(0));

if(ppos)

}   

}free(pdata);   

return "";

}呼叫示例:

m_strmac = getmacbyname("本地連線");

if(m_strmac.getlength()==12)

else

m_strlicense = "";

linux 獲取本地mac位址 指定網絡卡

獲取本地mac std string getlocalmac memset ifr mac,0,sizeof ifr mac strncpy ifr mac.ifr name,eth0 sizeof ifr mac.ifr name 1 if ioctl sock mac,siocgifhwaddr...

獲取網絡卡MAC位址

做網路程式設計的程式設計師免不了要與mac位址打交道,這個128bit的數字串在某種程度上就代表了機器的唯一性,因此在做統計工作時一般都以mac位址作為標準。下面介紹兩種獲取本機mac位址的方式。1.通過請求netbios服務獲取mac位址 2.通過iphelpapi獲取。第一種方法要求本機開啟了n...

linux 指定網絡卡獲取對方 對端 mac位址

注意 net card name為網絡卡的名稱,如圖一中 device下的即為各網絡卡暱稱。mac為十六進製制總共6個位元組,需要轉換成字串的可以用sprintf轉換一下就可以。int from socket get mac int sock fd,char mac,const char net c...