|
냉무라고 하시니.. 저도 냉무로 답변을 할까 하다가... --;;
#include <nb30.h>
struct ASTAT
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
};
AnsiString __fastcall GetMACAddr(int nAdapterNum)
{
NCB ncb;
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = nAdapterNum;
if (Netbios(&ncb)!=NRC_GOODRET) return "";
ASTAT Adapter;
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = nAdapterNum;
strcpy(ncb.ncb_callname, "*");
ncb.ncb_buffer = (char *)&Adapter;
ncb.ncb_length = sizeof(Adapter);
if (Netbios(&ncb)!=NRC_GOODRET) return "";
return AnsiString().sprintf("%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]);
}
MSDN의 예제를 참고한 것입니다.
그럼..
|