首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

要使用Delphi获取网卡的MAC地址,您可以使用Windows API函数GetAdaptersInfo。以下是一个简单的示例代码:

代码语言:delphi
复制
program GetMacAddress;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows,
  IpHlpApi;

function GetMacAddress: string;
var
  pAdapterInfo: PIP_ADAPTER_INFO;
  pAdapter: PIP_ADAPTER_INFO;
  dwRetVal: DWORD;
  i: Integer;
  macAddress: string;
begin
  pAdapterInfo := nil;
  dwRetVal := GetAdaptersInfo(pAdapterInfo, nil);
  if dwRetVal = ERROR_BUFFER_OVERFLOW then
  begin
    pAdapterInfo := AllocMem(dwRetVal);
    dwRetVal := GetAdaptersInfo(pAdapterInfo, dwRetVal);
    if dwRetVal = NO_ERROR then
    begin
      pAdapter := pAdapterInfo;
      while pAdapter <> nil do
      begin
        macAddress := '';
        for i := 0 to pAdapter^.AddressLength - 1 do
        begin
          if i > 0 then
            macAddress := macAddress + '-';
          macAddress := macAddress + IntToHex(pAdapter^.Address[i], 2);
        end;
        Result := macAddress;
        pAdapter := pAdapter^.Next;
      end;
    end;
  end;
  if Assigned(pAdapterInfo) then
    FreeMem(pAdapterInfo);
end;

begin
  try
    WriteLn('MAC address: ' + GetMacAddress);
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;
end.

这段代码将获取计算机的所有网络适配器的MAC地址,并将其作为字符串返回。请注意,如果计算机有多个网络适配器,此代码将返回第一个适配器的MAC地址。

在这个示例中,我们使用了GetAdaptersInfo函数,它是Windows IP Helper API的一部分。您需要在使用此代码之前将IpHlpApi添加到您的项目中的uses子句中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券