+#ifdef __linux__
+#define ea_oct ether_addr_octet
+#else
+#define ea_oct octet
+#endif
+
+static struct ether_addr *
+my_ether_aton(const char *a)
+{
+ int i;
+ static struct ether_addr ether_addr;
+ unsigned int o0, o1, o2, o3, o4, o5;
+
+ i = sscanf(a, "%x:%x:%x:%x:%x:%x", &o0, &o1, &o2, &o3, &o4, &o5);
+
+ if (i != ETHER_ADDR_LEN)
+ return NULL;
+
+ ether_addr.ea_oct[0] = o0;
+ ether_addr.ea_oct[1] = o1;
+ ether_addr.ea_oct[2] = o2;
+ ether_addr.ea_oct[3] = o3;
+ ether_addr.ea_oct[4] = o4;
+ ether_addr.ea_oct[5] = o5;
+
+ return (struct ether_addr *)ðer_addr;
+}
+