Getting MAC Address of more than one NIC

I want to make my application to get the MAC Address of all of the NIC Adapters on the computer. If the computer has two or three or more NIC Adapter, get the MAC Address of each one. This question is for an expert. Who ever get´s it right, I´ll increase the points.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Unfortunately not reliable on 95 or 98 (see Also relies on netbios being installed, which is not always the case.

Have a look at,1410,26040,00.html - ignore the first one as it is the same as above. Look at the 3rd one, SNMP, which appears to be the only reliable method. Only problem: C++.

Geoff M.
Ferruccio AccalaiSenior developer, analyst and customer assistance Commented:
In addition to Geoff post (that is the right way) at this point: 'Only problem: C++.'
Fortunatelly Project Jedi gives lot of solutions for Delphi developers you can get the API SNMP.h translation for Delphi here (also example included) and look at the above Article for Delphi (french language but most useful than the C++ one) at

F68 ;-)
OWASP Proactive Controls

Learn the most important control and control categories that every architect and developer should include in their projects.

This is a great routine for doing everything you want networks/adapters/and mac addresses.

do a search on yahoo for . it was written by
Dirk Claessens  <>  and uses tcp/ip to enumerate all network resources and information including mac addresses.

If you want to use netbios to do the same using netbios then search for on yahoo
    written by Vlad Sharnin  

I don't have the original sites for the above but I can email the files if you have trouble finding them.

si0347429Author Commented:
Hey JDuncan I searched for and i didn´t find it. Can you send it to me please. My e-mail is ""
my yahoo account keeps rejecting you email address - is it correct?
Yopu can upload the file from :-
si0347429Author Commented:
Hey JDuncan do you know if it´s really possible to know which MAC is from what IP Address ? Because it shows it. But i´m no sure if it´s really possible. What do you think ???
Not sure I understand your question.

The same ethernet address(machine) can be bound to multiple network adapters
si0347429Author Commented:
First I would like to thank you for the tcpmon file. What i´m trying to ask is. Each NIC has it´s own MAC address and IP. Can I trust  on the infomation tha it´s telling me which is for example: the NIC´s IP Address is and it´s MAC Address is 00-01-29-52-04-A4.
Yes you can . The mac address comes from the network card's flash rom and is setup by the
manufacturer. You can also tell the manufacturer and model of the card from the mac address.
The ip address comes from windows  and is bound to the network card.

On normal pc's the only way for the card to be wrong is if someone re programs its flash .

I believe some PDA's have a mac address which can be setup by software.

The information is coming off the machines network card. Also if you try to get the mac address of a remote machine over a network via TCOP/IP this uses the wake on lan facility inside the network card. I don't think its possible using older cards . You then have to resort to netbios calls for these.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
si0347429Author Commented:
  Thank you. It was exactly what I needed man. I jus changed some things to do what I need. You helped me alot. Do you know if there´s anything like this one, but instead of getting the MAC, get the Video Card. I increased more 50 points for you.
Thanks, can you set the answer as accepted.

I think you can enumerater all system resources , i'll have a look

Jim Duncan
si0347429Author Commented:
I found this , its not much it only gives you the monitor sizes.

Thes is a function EnumDisplayMonitors somewhere which may give more info.
The function EnumMonitors is more fore system monitors like print servioces etc.

 uses multimon;

  myMonitor : TMonitor;
  monInfo : PMonitorInfo;
    for i:=0 to Screen.MonitorCount-1 do begin
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.