您的位置:首页 > 编程语言 > Delphi

Delphi获取本机的MAC地址

2015-12-03 16:54 423 查看
Delphi获取本机的MAC地址:

uses

NB30;

function GetAdaPterInfo(lana: Char): string;

var

Adapter: TAdapterStatus;

NCB: TNCB;

begin

FillChar(NCB,Sizeof(NCB),0);

NCB.ncb_command := Char(NCBRESET);

NCB.ncb_lana_num := Lana;

if Netbios(@NCB) <> Char(NRC_GOODRET) then

begin

Result := 'mac not found';

exit;

end;

FillChar(NCB,Sizeof(NCB),0);

NCB.ncb_command := Char(NCBASTAT);

NCB.ncb_lana_num := Lana;

NCB.ncb_callname := '*';

FillChar(Adapter,Sizeof(Adapter),0);

NCB.ncb_buffer := @Adapter;

NCB.ncb_length := Sizeof(Adapter);

if Netbios(@NCB) <> Char(NRC_GOODRET) then

begin

result :='mac not found';

Exit;

end;

Result :=

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) ;

end;

function GetMACAddress: string;

var

AdapterList: TLanaEnum;

NCB: TNCB;

begin

FillChar(NCB,Sizeof(NCB),0);

NCB.ncb_command := Char(NCBENUM);

NCB.ncb_buffer := @AdapterList;

NCB.ncb_length := SizeOf(AdapterList);

Netbios(@NCB);

if Byte(AdapterList.length) > 0 then

Result := GetAdapterInfo(AdapterList.lana[0])

else

Result := 'mac not found';

end;

调用: s:= GetMACAddress;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: