| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
ElBlues
Anmeldungsdatum: 25.03.2008 Beiträge: 127
|
Verfasst am: 22. Jul 2011 8:03 Titel: MAC-Adresse ermitteln wenn eth nicht verbunden? |
|
|
Hi,
aktuell ermittle ich die MAC-Adressen meiner vorhandenen Netzwerkgeräte auf diesem Weg:
| Code: |
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);
|
Nachteil: hier muss - vermutlich Dank NetworkManager - ein Netzwerkinterface tatsächlich verbunden sein, damit es in der Liste auftaucht.
Ich hätte aber gerne die MAC-Adressen aller Interfaces, egal ob verbunden oder nicht. Wie geht das am besten? _________________ http://www.kaufkauf.net - nie wieder Einkäufe vergessen! |
|
| |
|
|
Janka

Anmeldungsdatum: 11.02.2006 Beiträge: 3274
|
Verfasst am: 22. Jul 2011 9:55 Titel: |
|
|
Vermutlich hängt das damit zusammen, dass ein AF_INET-Socket voraussetzt, dass dem Gerät eine IP-Adresse zugewiesen ist. Andere Protokollfamilie ausprobieren, z.B. raw-Sockets.
Ich mache das übrigens ganz anders und gucke mir einfach den Inhalt der Dateien /sys/class/net/eth*/address an. Geht natürlich nur, wenn sysfs da ist.
Janka _________________ Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie. |
|
| |
|
|
ElBlues
Anmeldungsdatum: 25.03.2008 Beiträge: 127
|
Verfasst am: 27. Jul 2011 6:52 Titel: |
|
|
| Janka hat folgendes geschrieben:: | | Ich mache das übrigens ganz anders und gucke mir einfach den Inhalt der Dateien /sys/class/net/eth*/address an. Geht natürlich nur, wenn sysfs da ist. |
Das klingt doch mal nach einer prima Lösung - und wenn sysfs nicht existiert kann ich immer noch auf meine Methode zurückgreifen  _________________ http://www.kaufkauf.net - nie wieder Einkäufe vergessen! |
|
| |
|
|
|
|