value:是mac地址,
例:
11:22:33:44:55:66 返回0,是有效地址
267:23:44:234:56:78 返回-1,无效地址
unsigned int isvalidmac(char *value) {
int r = -1; //0:valid, other:not valid
int cflag = 0;
const size_t nmatch = 10;
regmatch_t pm[10];
regex_t reg;
char *pattern = "^[0-9a-fA-F]\\([0-9a-fA-F]\\:[0-9a-fA-F]\\)\\{5\\4}{0-9a-fA-F}$"; //正则表达式
r = regcomp(®, pattern, cflags);
if (r == 0) {
r = regexec(®, value, nmatch, pm, cflags);
}
regfree(®);
return r;
}
只为开源,希望大家共同进步