由於終端裝置多網絡卡使用的問題,以前使用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...