How do I get the MacAddress of an Network Card using Delphi ?
A network adapter, also called a Network Interface Card or NIC, is equipped with a unique identifier known as the Media Access Control (MAC) address. This address can be used by routers and switches to control access to a network.
In the OSI reference model for networking, the MAC is a Layer 2 -- or data link layer -- device, and the MAC address is a Layer 2 address.
Type ipconfig /all at the command prompt to check the network card settings. The IP address and MAC address are listed under the appropriate adapter as Physical Address and IPv4 Address. You can copy the Physical Address and IPv4 Address from the command prompt by right clicking in the command prompt and clicking Mark.
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.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With