从字符串中提取网络适配器的Mac地址(char* 转hex)

本文介绍如何从字符串形式的MAC地址中,通过转化操作获取网络适配器的全球唯一48位十六进制地址。内容涉及MAC地址的特性及其在计算机硬件中的角色。
摘要由CSDN通过智能技术生成

网络适配器的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值