字符串mac转换

xiaoxiao2021-02-28  72

自己写了一个把一个16进制的字符串mac地址转换成一个6B的数组格式的mac

#include <stdio.h> #include <stdlib.h> int mac_trans(const char *smac, unsigned char *dmac) { char *tmp = smac; char *token, *nptr; char *delim = ":.-"; int i = 0; token = strtok(tmp, delim); while (token != NULL) { dmac[i++] = (char)strtol(token, &nptr, 16); token = strtok(NULL, delim); } return 0; } static char *mac_pton(char *strmac, int strlen, char *nmac) { char str[32] = ""; char *saveptr, *token, *enptr; int i = 0; memcpy(str, strmac, strlen); for (token = strtok_r(str, ":", &saveptr); token != NULL; token = strtok_r(NULL, ":", &saveptr)) { nmac[i++] = (char)strtol(token, &nptr, 16); } return nmac; } 或者使用sprintf等进行转换

代码不是太精确,仅供参考,有建议的欢迎提出

转载请注明原文地址: https://www.6miu.com/read-84772.html

最新回复(0)