Gibt es eine Möglichkeit, die MAC-Adresse der Schnittstelle über getifaddrs()
zu erhalten?
Ich habe das schon, um IP-Adressen zu bekommen, aber ich habe MAC
irgendwie verpasst. Ich habe versucht, nach der Information in getifaddrs()
zu suchen, aber es gibt nichts über MAC
Adressen
Danke
getifaddrs () liefert bereits die mit jeder Schnittstelle verknüpfte MAC-Adresse. Unter Linux, wenn Sie in eine Familie stoßen == AF_PACKET das ist die MAC-Adresse. Das Gleiche gilt für OSX / BSD, aber in diesem Fall ist die Familie AF_LINK.
Wenn Sie mit Unix arbeiten, suchen Sie nach ioctl
SIOCGIFHWADDR
:
SIOCGIFHWADDR, SIOCSIFHWADDR
Holen oder setzen Sie die Hardware-Adresse eines Geräts mit ifr_hwaddr. Das Hardware-Adresse ist in einer Struktur sockaddr angegeben. sa_family enthält der Gerätetyp ARPHRD_ *, sa_data die L2-Hardwareadresse, die startet von Byte 0. Das Setzen der Hardwareadresse ist eine privilegierte Operation.
Siehe man netdevice
.
Es gibt meine Experimente mit verschiedenen Ansätzen, um Schnittstellen aufzulisten
%Vor%Tags und Links c ip interface mac-address