myetheraddr.c (449B)
1 #include <u.h> 2 #include <libc.h> 3 #include <ip.h> 4 5 static char zea[6]; 6 7 int 8 myetheraddr(uchar *to, char *dev) 9 { 10 Ipifc *ifclist, *ifc; 11 12 ifclist = readipifc(nil, nil, -1); 13 for(ifc=ifclist; ifc; ifc=ifc->next){ 14 if(dev && strcmp(ifc->dev, dev) != 0) 15 continue; 16 if(memcmp(zea, ifc->ether, 6) == 0) 17 continue; 18 memmove(to, ifc->ether, 6); 19 freeipifc(ifclist); 20 return 0; 21 } 22 freeipifc(ifclist); 23 werrstr("no ethernet devices"); 24 return -1; 25 }