Link to home
Start Free TrialLog in
Avatar of si0347429
si0347429

asked on

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.
Avatar of arjanh
arjanh

Unfortunately not reliable on 95 or 98 (see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netbios/netbios_1l82.asp). Also relies on netbios being installed, which is not always the case.

Have a look at http://community.borland.com/article/0,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.
Avatar of Ferruccio Accalai
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 too...so you can get the API SNMP.h translation for Delphi here ftp://delphi-jedi.org/api/snmp.zip (also example included) and look at the above Article for Delphi (french language but most useful than the C++ one) at http://www.iglooduhack.com/delphi_adresse_mac.php

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

do a search on yahoo for tcpmon12.zip . it was written by
Dirk Claessens  <dirkCL@pandora.be>  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 getmacad.zip on yahoo
    written by Vlad Sharnin  vladshar@ufanet.ru  

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

Avatar of si0347429

ASKER

Hey JDuncan I searched for tcpmon12.zip and i didn´t find it. Can you send it to me please. My e-mail is "si0347429@univale.br"
my yahoo account keeps rejecting you email address - is it correct?
Yopu can upload the file from :-

http://81.137.231.48/upload/tcpmon.zip
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
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 100.100.1.10 and it´s MAC Address is 00-01-29-52-04-A4.
ASKER CERTIFIED SOLUTION
Avatar of JDuncan
JDuncan
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
JDuncan,
  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
Thanx.
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;
begin
    new(monInfo);
    i:=Screen.MonitorCount;
    for i:=0 to Screen.MonitorCount-1 do begin
      myMonitor:=Screen.Monitors[i];
      GetMonitorInfo(myMonitor.Handle,monInfo);
      Showmessage(inttostr(monInfo.cbSize));
      Showmessage(inttostr(monInfo.rcWork.Right));
    end;