要使用Delphi获取网卡的MAC地址,您可以使用Windows API函数GetAdaptersInfo
。以下是一个简单的示例代码:
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
子句中。
领取专属 10元无门槛券
手把手带您无忧上云