如何将Mac字符串转换为C中的字节地址

use*_*270 13 c

我想从命令行获取MAC地址,所以我把它作为字符串...如何将这个17字节的MAC字符串转换为"00:0d:3f:cd:02:5f"到C中的6字节MAC地址

Cra*_*sta 25

在符合C99的实现中,这应该可行

unsigned char mac[6];

sscanf(macStr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]);
Run Code Online (Sandbox Code Playgroud)

否则,你需要:

unsigned int iMac[6];
unsigned char mac[6];
int i;

sscanf(macStr, "%x:%x:%x:%x:%x:%x", &iMac[0], &iMac[1], &iMac[2], &iMac[3], &iMac[4], &iMac[5]);
for(i=0;i<6;i++)
    mac[i] = (unsigned char)iMac[i];
Run Code Online (Sandbox Code Playgroud)