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