说明:在工作中经常遇到要将17字节的mac字符串转换为6字节mac,以下将方法记录下来,供自己及大家查询,如有不对之处,请指正。
以下假定mac为“12-34-56-78-91-23”
python:
mac = "123456789123"
g_mac = ""
for x in xrange(0, len(mac), 2):
g_mac += chr(int(mac[x:x+2], 16))
c:
void FormatMac( char* pbBuf,const char* szHex)
{
if(!szHex)
return;
int iLen = strlen(szHex);
if (iLen<=0 || 0!=iLen%2)
return;
int tmp1, tmp2;
for (int i=0;i<iLen/2;i++)
{
tmp1 = (int)toupper(szHex[i*2]) - (((int)toupper(szHex[i*2])>='A')?'A'-10:'0');
if(tmp1>=16)
return;
tmp2 = (int)toupper(szHex[i*2+1]) - (((int)toupper(szHex[i*2+1])>='A')?'A'-10:'0');
if(tmp2>=16)
return;
pbBuf[i] = (tmp1*16+tmp2);
}
}