网络适配器的MAC地址为全球唯一的6字节(48位)地址,标识一台计算机地址(一台计算机可以装多个网络适配器,因此可以有多个MAC地址),是固化在适配的ROM中的地址。
将char数组类型(字符串型)的MAC转化为十六进制:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define uint unsigned int
#define uchar unsigned char
#define MAC_ADDRESS_LEN 6 /* mac地址长为6位十六进制数*/
typedef enum tagMac_Format
{
MAC_FORMAT_2PART = 0,
MAC_FORMAT_3PART,
MAC_FORMAT_6PART_1,
MAC_FORMAT_6PART_2,
MAC_FORMAT_ANY,
MAC_FORMAT_BUTT
}Mac_Format;
typedef struct strParseInfo
{
char *szFmt;
uint uiLen;
}STR_PARSE_INFO_S;
/* Mac 地址以字符串呈现的四种不同方式 */
STR_PARSE_INFO_S g_astMacInfo[MAC_FORMAT_BUTT]=
{
{"%c%c%c%c%c%c-%c%c%c%c%c%c",13},
{"%c%c%c%c-%c%c%c%c-%c%c%c%c",14},
{"%c%c-%c%c-%c%c-%c%c-%c%c-%c%c",17},
{"%c%c:%c%c:%c%c:%c%c:%c%c:%c%c",17},
{"",0}
};
bool str_2_hex(char *szData,uchar *pucHex)
{
uint uiLen = 0;
uin