[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How to retrieve an interface's MAC address
- Date: Sun, 06 Apr 2008 08:43:44 +1000
- From: chrisj at rtems.org (Chris Johns)
- Subject: How to retrieve an interface's MAC address
Arnout Vandecappelle wrote:
> I need to get the network interface's MAC address from my application.
> According to the Wiki (Obtaining_Interface_Information), this can be
> obtained by ioctl'ing for SIOCGIFADDR. However, this gives the IP
> address (ether_ioctl does return the MAC address, but it never gets
> there as it is intercepted by in_control). As far as I can see, there
> is no simple way to retrieve the MAC address from the application. (You
> can get it from within the networking stack one you have the struct
> ifnet, like is done in the DHCP client, but this is not supposed to be
> accessible from the application.)
> Is there a way to retrieve it that I missed?
There is the sysctl interface which is used by net-snmp to provide details
about an interface. Not a nice interface but it does work. What about the
SIOCGIFCONF ioctl ? See cpukit/libnetworking/libc/getifaddrs.c for an example
of its use. Look for the socket part of the code. Check 'ifconf' in
Please update the Wiki if you get a solution.
> Should I add a SIOCGIFHWADDR ioctl like in Linux?
We have a FreeBSD stack so you need to look at that operating system for a
solution. It would not be a good idea to introduce Linux calls to this stack.