Which file to request SIOCGIFMAC on?
cswiger at mac.com
Tue Feb 20 22:49:32 UTC 2007
On Feb 20, 2007, at 2:33 PM, nocturnal wrote:
[ ...looking up one's MAC address... ]
> I am buying a MacBook for personal use though so it would be nice
> to run it on osx. I wouldn't like to start using another library
> just to get the hardware address of an interface though, that seems
> kinda overkill for what should be a simple task. The program is
> already using libpcap but that is included in FreeBSD by default so
> you don't have to install it.
I don't think PCAP offers an easy way to get the MAC address of a
given interface, short of capturing a packet sent from the host via
that particular interface, and then figuring out the right offset to
the source/sender MAC based on the datalink type header, which
presumably will be DLT_EN10MB (14 bytes in size, IIRC).
> Do you have any idea of why i'm getting this error from ioctl when
> i'm doing what the manual says i should do? I am of course running
> it as root to because the libpcap operations require it.
Nope, sorry. I remember trying to make this go myself a while back,
and decided that using the libnet call was much easier than figuring
out why the SIOCGIFMAC ioctl wasn't working as expected...
> What might help me is to take a look at the source of that
> libnet_get_hwaddr function in libnet. I'll try that, thank you very
> much for the tip.
> So far i've been trying to look at the source for ifconfig to
> figure out how it gets the hardware address. Of course it uses
> SIOCGIFMAC but i can't find the socket it opens because i can't
> find where it uses the maclabel_status function.
Well, you could always invoke and parse the output of ifconfig (or
arp), but I can understand wanting to get the information directly
without frobbing external programs. :-)
More information about the freebsd-questions