Delphi获取本机的MAC地址

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;

上一篇:python 获取本机 IP


下一篇:hdu 1811拓扑排序+并查集(容器实现)