I actually prefer the API call getifaddrs(3), which does much the same
thing, but hides the MIB management interface behind a fairly well-defined
API, which also does the memory management.  You can just pull out the
link layer addresses along with interface description. 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]      NAI Labs, Safeport Network Services

On Tue, 31 Jul 2001, Jag Johal wrote:

> Use sysctl(3), basically, its something like this.
> mib[0] = CTL_NET;
> mib[1] = AF_ROUTE;
> mib[2] = 0;
> mib[3] = AF_INET;
> mib[4] = NET_RT_IFLIST;
> mib[5] = 0;
> 
> sysctl(mib, 6, buf, &len, NULL, 0);
> buf will contain for each interface, an if_msghdr followed by a sockaddr_dl,
> the sockaddr_dl will contain the interface name and mac addr. Following that
> will be a ifa_msghdr for each ip address on the interface. You may want to
> check out UNPv1. 
> 
> Jag
> 
> -----Original Message-----
> From: Chris Faulhaber [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 31, 2001 3:56 PM
> To: Michael VanLoon
> Cc: '[EMAIL PROTECTED]'
> Subject: Re: Finding MAC address of interface - programming question
> 
> 
> On Tue, Jul 31, 2001 at 03:56:40PM -0700, Michael VanLoon wrote:
> > Please point me to a more appropriate forum if there is one.  I'm kinda
> out
> > of my depth on this question.  Pseudo code is fine. :-)
> > 
> > What I'm looking for is how to enumerate the network interfaces and get
> the
> > Ethernet MAC address of one programmatically.  Can anyone point me in the
> > right direction?
> > 
> 
> /usr/src/sbin/ifconfig
> 
> -- 
> Chris D. Faulhaber - [EMAIL PROTECTED] - [EMAIL PROTECTED]
> --------------------------------------------------------
> FreeBSD: The Power To Serve   -   http://www.FreeBSD.org
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
> 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to