MAC-Adresse mit getippaddrs

7

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

%Vor%

Danke

    
shaggy 20.07.2011, 13:29
quelle

6 Antworten

2

Hier ist der Code zum Abrufen von IP- und MAC-Adressen

%Vor%     
shaggy 22.07.2011, 15:34
quelle
11

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.

    
Giampaolo Rodolà 25.09.2014 12:18
quelle
10

Auf BSD-Systemen können Sie gettifaddr direkt zum Abrufen von MACs verwenden. Hier ist ein Beispiel für die vollständigen macaddr.c-Tools:

%Vor%     
royaltm 14.10.2012 00:46
quelle
9

Unter Linux würden Sie so etwas tun

%Vor%

Obwohl möglicherweise mehr Mitglieder der Struktur sockaddr_ll vorhanden sind, die Sie untersuchen möchten, finden Sie unter hier für eine Beschreibung.

    
nos 20.07.2011 13:44
quelle
3

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 .

    
NPE 20.07.2011 13:31
quelle
1

Es gibt meine Experimente mit verschiedenen Ansätzen, um Schnittstellen aufzulisten

%Vor%     
jno 31.08.2016 11:40
quelle

Tags und Links