Код | #include <sys/ioctl.h> #include <net/if.h> #include <net/ethernet.h>
#include <string.h> #include <stdio.h>
int main() { int s; int i; const char *prefix; struct ifreq ifreq; memset(&ifreq, 0, sizeof(ifreq)); strcpy(ifreq.ifr_name, "eth0"); if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { return -1; } if (ioctl(s, SIOCGIFHWADDR, &ifreq) < 0) { return -2; } prefix = ""; for (i = 0; i < ETHER_ADDR_LEN; ++i) { printf("%s%02X", prefix, (unsigned int)(unsigned char)ifreq.ifr_hwaddr.sa_data[i]); prefix = ":"; } return 0; }
|
|