kdw
Joined: 05 May 2006 Posts: 1490
|
Posted: 25.03.2013, 12:08 Post subject: MAC-Adresse auslesen … |
|
|
Hallo Forum.
Hin und wieder kommt die Frage auf, wie man mit einer in C geschriebenen Anwendung die MAC-Adresse der eth0/LAN1-Schnittstelle auslesen kann. Hier ein Beispiel:
Code: | #include <unistd.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <sys/ioctl.h>
#include <net/if.h>
int main(void) {
int sock; //socket descriptor
struct ifreq ifr; //network interface structure
uint8_t *hw = NULL; //pointer to hardware address
//open eth0 interface and read out the MAC address
if ((sock = socket(PF_INET, SOCK_STREAM, 0)) != -1) {
strcpy(ifr.ifr_name, "eth0");
if (ioctl(sock, SIOCGIFHWADDR, &ifr) != -1) {
hw = (uint8_t *)(ifr.ifr_hwaddr.sa_data);
printf("mac eth0: %02X:%02X:%02X:%02X:%02X:%02X\n",
*(hw), *(hw + 1), *(hw + 2), *(hw + 3),
*(hw + 4), *(hw + 5));
}
close(sock);
}
}
|
Gruß
KDW |
|