How do I get the MAC address of a network card using Delphi?

前端 未结 4 1937
我在风中等你
我在风中等你 2020-12-18 05:24

How do I get the MacAddress of an Network Card using Delphi ?

4条回答
  •  不知归路
    2020-12-18 05:51

    Get the JEDI conversion of the Microsoft IP Helper Library from the Project JEDI API Header Library - the file is IPHlpAPI.zip. Unpack the files, you need IpTypes.pas and IpHlpApi.pas. Then you can use something like this:

    procedure TForm1.Button1Click(Sender: TObject);
    var
      NumInterfaces: Cardinal;
      AdapterInfo: array of TIpAdapterInfo;
      OutBufLen: ULONG;
      i: integer;
    begin
      GetNumberOfInterfaces(NumInterfaces);
      SetLength(AdapterInfo, NumInterfaces);
      OutBufLen := NumInterfaces * SizeOf(TIpAdapterInfo);
      GetAdaptersInfo(@AdapterInfo[0], OutBufLen);
    
      Memo1.Lines.Clear;
      for i := 0 to NumInterfaces - 1 do begin
        Memo1.Lines.Add(Format('%.2x:%.2x:%.2x:%.2x:%.2x:%.2x',
          [AdapterInfo[i].Address[0], AdapterInfo[i].Address[1],
           AdapterInfo[i].Address[2], AdapterInfo[i].Address[3],
           AdapterInfo[i].Address[4], AdapterInfo[i].Address[5]]));
      end;
    end;
    

    (All error handling omitted, you should add it of course.)

提交回复
热议问题