MAC ADDRESS를 얻는 함수를 만들었는데
프로그램을 실행할때마다 MAC ADDRESS가 자꾸 바뀌네여.
아래 소스를 첨부합니다
고수님들의 조언 부탁드리겠습니다..
조금 급한데여 빨리 답변 부탁드리겠습니다.
{ 이름 : func_GetMACAddr
기능 : 컴퓨터의 MAC Address를 얻는다.
인수 : Adapter의 정수값, PC이름의 문자값
결과값 : MAC Address의 문자값.
}
// 함수를 부를때는 func_GetMACAddr(0, '심한우');
// uses NB30;
function func_GetMACAddr(nAdapterNum : Integer; sHostNm: string): boolean;
var
NCB : TNCB;
adapter : TAdapterStatus;
acMAC : String;
begin
gIPAddr := ''; // 구한 MAC ADDRESS를 사용하기 위한 변수
ncb.ncb_command := char(NCBRESET);
ncb.ncb_lana_num := char(nAdapterNum);
if not (Netbios(@ncb) = char(NRC_GOODRET)) then
result := false;
FillChar(NCB.ncb_callname,SizeOf(NCB.ncb_callname), #0);
ncb.ncb_command := char(NCBASTAT);
ncb.ncb_lana_num := char(nAdapterNum);
StrPCopy(NCB.ncb_callname, sHostNm);
ncb.ncb_buffer := @Adapter;
ncb.ncb_length := SizeOf(Adapter);
if not(Netbios(@ncb) = char(#0)) then begin
FmtStr(acMac, '%2s-%2s-%2s-%2s-%2s-%2s',
[IntToHex(Byte(Adapter.adapter_address[0]), 2),
IntToHex(Byte(Adapter.adapter_address[1]), 2),
IntToHex(Byte(Adapter.adapter_address[2]), 2),
IntToHex(Byte(Adapter.adapter_address[3]), 2),
IntToHex(Byte(Adapter.adapter_address[4]), 2),
IntToHex(Byte(Adapter.adapter_address[5]), 2)]);
gMACAddr := acMac;
result := true;
end
else
result := false;
end;