37 #include <netinet/in.h>
38 #include <sys/ioctl.h>
47 return "00:00:00:00:00:00";
55 fd = socket(AF_INET, SOCK_DGRAM, 0);
56 ifr.ifr_addr.sa_family = AF_INET;
57 strncpy(ifr.ifr_name,
"eth0", IFNAMSIZ - 1);
60 ioctl(fd, SIOCGIFHWADDR, &ifr);
66 printf(
"No ethernet adapter found. Using dummy MAC\n");
67 mac =
"00:00:00:00:00:00";
73 "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
74 (
unsigned char)ifr.ifr_hwaddr.sa_data[0],
75 (
unsigned char)ifr.ifr_hwaddr.sa_data[1],
76 (
unsigned char)ifr.ifr_hwaddr.sa_data[2],
77 (
unsigned char)ifr.ifr_hwaddr.sa_data[3],
78 (
unsigned char)ifr.ifr_hwaddr.sa_data[4],
79 (
unsigned char)ifr.ifr_hwaddr.sa_data[5]);
104 IP_ADAPTER_INFO AdapterInfo[128];
105 DWORD dwBufLen =
sizeof(AdapterInfo);
106 DWORD dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen);
109 if (dwStatus != ERROR_SUCCESS)
111 return "00:00:00:00:00:00";
114 PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
119 if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)
123 "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
124 pAdapterInfo->Address[0],
125 pAdapterInfo->Address[1],
126 pAdapterInfo->Address[2],
127 pAdapterInfo->Address[3],
128 pAdapterInfo->Address[4],
129 pAdapterInfo->Address[5]);
135 pAdapterInfo = pAdapterInfo->Next;
138 return "00:00:00:00:00:00";