实现MAC地址转换成十六进制

原创 2016年08月30日 17:57:37

    实现将mac地址(如:"00:FF:0A:0C:06:03")转换成十六进制存储的00FF0A0C0603

由以下两种方法实现:

方法一:

#include "stdio.h"
#include "string.h"
  
static unsigned char SwitchChar(char chStr)
{
    if (chStr >= '0' && chStr <= '9')
    {
        return (chStr - '0');
    }
    else if (chStr >= 'A' && chStr <= 'f')
    {
        return (chStr - 'A' + 10);
    }
    else if (chStr >= 'a' && chStr <= 'f')
    {
        return (chStr - 'a' + 10);
    }
    else
    {
        return 0;
    }
}
 
int main(void)
{
    char achSrc[] = "00:FF:0A:0C:06:03";
    unsigned char mac[6] = {0};
    char *pchStr = strtok(achSrc, ":");
    int  nIdx = 0;
    int  nTotal = 0;
 
    while (NULL != pchStr)
    {
        abyDst[nTotal++] = (SwitchChar(*pchStr) << 4) | SwitchChar(*(pchStr+1));
        pchStr = strtok(NULL, ":");
    }
 
    printf("Mac is %s,mac is %02x%02x%02x%02x%02x%02x\n",achSrc,mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);

    return 0;
}


方法二:

int main(void)
{
    char achSrc[] = "00:FF:0A:0C:06:03";
    unsigned char mac[6] = {0};
 
    sscanf(achSrc, "%02x:%02x:%02x:%02x:%02x:%02x", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); 
    printf("Mac is %s,mac is %02x%02x%02x%02x%02x%02x\n",achSrc,mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);

    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组

#include #include unsigned char a2x(const char c) { switch(c) { case '0'......
  • Aniu127
  • Aniu127
  • 2014年03月05日 17:34
  • 1102

获取mac地址并以十六进制格式加冒号分隔显示

unsigned char* getMacAddr() {     char output[wifi_length] = {0};     int rec_size = 0;     int ...
  • sunxingzhesunjinbiao
  • sunxingzhesunjinbiao
  • 2015年01月08日 09:34
  • 3839

mac地址转换为长整形

最近工作中需要在网络中传递mac地址,需要将mac地址转换为六个字节,网上找了找资料,基本的思路就是用根据冒号将mac地址分为六段, 每段看做一个十六进制数,转化为十进制数后,分配赋值给六字节数组的每...
  • hello_programmer
  • hello_programmer
  • 2014年11月24日 11:07
  • 1935

Mac地址和字符串之间的转换

[cpp] view plaincopy std::string MacToStr(UINT8 * pMac,const char chKen/* = ':'*/)   ...
  • ljh0302
  • ljh0302
  • 2015年12月24日 17:10
  • 1648

输入mac地址,jq自动实时转换

$("input[name=mac]").bind("input propertychange",function () {//输入自动转为MAC地址格式 v...
  • moniteryao
  • moniteryao
  • 2016年03月30日 23:47
  • 766

Mac地址和字符串之间的转换

废话少说,直接上代码std::string MacConvert::MacToStr(UINT8 * pMac,const char chKen/* = ':'*/){char szFormat[] ...
  • wuzhijie
  • wuzhijie
  • 2011年07月22日 17:07
  • 3032

MAC地址转换器

  • 2017年11月30日 22:06
  • 5.1MB
  • 下载

组播IP地址与组播MAC地址之间的换算方法

MAC地址介绍 络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的。 该定义类型大体上分为: EtherNET 802.3 , Token Ring 802.5 , Token B...
  • zhaomax
  • zhaomax
  • 2016年09月02日 15:32
  • 7346

MAC地址转换器

  • 2011年09月20日 14:18
  • 361KB
  • 下载

超好用的ip和MAC地址转换工具

  • 2011年12月12日 14:00
  • 14KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现MAC地址转换成十六进制
举报原因:
原因补充:

(最多只允许输入30个字)