#include <stdio.h>
#include <string.h>
#include <linux/if_ether.h>
#include <ctype.h>
#include <inttypes.h>
static int str_to_hwaddr(uint8_t *hwaddr, const char *str)
{
char c;
uint8_t used = 0;
uint8_t quarter = 0;
memset(hwaddr, 0, ETH_ALEN);
while(isspace(*str)) ++str;
while('\0' != *str) {
c = *str++;
switch(c) {
default :
if(strchr("-:. ", c)) {
if(used) {
++hwaddr;
used = 0;
}
continue;
}
return -1;
case '0' ... '9':
quarter = c - '0';
break;
case 'a' ... 'f':
quarter = c - 'a' + 10;
break;
case 'A' ... 'F':
quarter = c - 'A' + 10;
break;
}
*hwaddr = ((*hwaddr)<<4) + quarter;
if(used) ++hwaddr;
used = !used;
}
return 0;
}
static int print_hwaddr(con
mac字符串转hwaddr,支持各种格式
最新推荐文章于 2021-05-13 04:14:20 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)