delphi - 如何使用Delphi获取网卡的MAC地址?

标签 delphi networking ethernet

如何使用 Delphi 获取网卡的 Mac 地址?

最佳答案

Project JEDI API Header Library 获取 Microsoft IP Helper Library 的 JEDI 转换- 文件是IPHlpAPI.zip。解压文件,您需要 IpTypes.pas 和 IpHlpApi.pas。然后你可以使用这样的东西:

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;

(省略了所有错误处理,您当然应该添加它。)

关于delphi - 如何使用Delphi获取网卡的MAC地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577071/

相关文章:

c++ - 这是合法的 C++ 代码吗?

linux原始以太网套接字绑定(bind)到特定协议(protocol)

Delphi 组件自定义属性不会保存在 DFM 文件中

Delphi:什么是组件(TDockTabSet?)以及如何使用它?

networking - 为什么if和else语句单次执行?

linux - 查看哪个是eth0和eth1(服务器,客户端)

c++ - 通过以太网电缆 (tcp) 的 rs-232 串行连接

delphi - 如何添加设置并进行设置,然后将其内置到Delphi中的现有exe文件中

Windows 8 上的 MySQL 和 Zeoslib : None of the dynamic libraries can be found or not loadable (libmysql. dll)

networking - 错误设置网络掩码有什么影响?