aktuell ermittle ich die MAC-Adressen meiner vorhandenen Netzwerkgeräte auf diesem Weg:
Code: Alles auswählen
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s==-1) return false;
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
ioctl(s, SIOCGIFCONF, &ifc);
IFR = ifc.ifc_req;
for (i = ifc.ifc_len / sizeof(struct ifreq); --i >= 0; IFR++)
{
strcpy(ifr.ifr_name, IFR->ifr_name);
if (ioctl(s, SIOCGIFFLAGS, &ifr) == 0)
{
if (! (ifr.ifr_flags & IFF_LOOPBACK))
{
if (ioctl(s, SIOCGIFHWADDR, &ifr) == 0)
{
bcopy(ifr.ifr_hwaddr.sa_data,m,6);
...
}
}
}
}
close(s);
Ich hätte aber gerne die MAC-Adressen aller Interfaces, egal ob verbunden oder nicht. Wie geht das am besten?