Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 266
Charles Faiga Avatar asked Feb 23 '09 09:02

Charles Faiga


People also ask

Does a network interface card have a MAC address?

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.

Which layer reads MAC addresses from the network card?

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.

What is my network card 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.


1 Answers

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.)

like image 94
mghie Avatar answered Nov 15 '22 06:11

mghie