• MAC地址加减1算法


    please input the mac :
    00:1A:A9:AA:BB:CC
    new mac for decrease is :00:1A:A9:AA:BB:CB
    new mac for increase is :00:1A:A9:AA:BB:CD

    #define  BOOL int 
    #define  FALSE 0 
    #define  TRUE  1 
    #include <stdio.h> 
    #include <string.h> 
    BOOL macDecrease(char * mac) //DECREASE MAC BY ONE 

        int num=16; 
        while(num>=0) 
        { 
            if('A' == mac[num]) 
            { 
                mac[num]='9'; 
                break; 
            } 
            else if('0' == mac[num]) 
            { 
                mac[num]='F'; 
                num--; 
            }
            else if(':' == mac[num])
            {
                num--;
            }
            else 
            { 
                mac[num]--; 
                break; 
            } 
        } 
        if(-1 == num) 
             return FALSE; //DECREASE FAIL 
        else 
            return TRUE; 

    BOOL macIncrease(char * mac) //INCREASE MAC BY ONE 

        int num=16; 
        while(num>=0) 
        { 
            if('9' == mac[num]) 
            { 
                mac[num]='A'; 
                break; 
            } 
            else if('F' == mac[num]) 
            { 
                mac[num]='0'; 
                num--; 
            }
            else if(':' == mac[num])
            {
                num--;
            }
            else 
            { 
                mac[num]++; 
                break; 
            } 
        } 
        if(-1 == num) 
             return FALSE;  //inclease FAIL 
        else 
            return TRUE; 

    void main(int argc, char* argv[]) 

        char mac[18],macInc[18]; 
        printf("please input the mac :\n"); 
        scanf("%s",mac); 
        strcpy(macInc,mac); 
        if(TRUE == macDecrease(mac)) 
            printf("new mac for decrease is :%s\n",mac); 
        else 
            printf("wrong in decrease\n"); 
        if(TRUE == macIncrease(macInc)) 
            printf("new mac for increase is :%s\n",macInc); 
        else 
            printf("wrong in increase\n"); 

  • 相关阅读:
    前端分布引导插件IntroJs的使用
    分步引导中,Js操作Cookie,实现判断用户是否第一次登陆网站
    android 5.0新特性CardView教程
    Android使用NumberPicker控件实现选择城市,生日
    程控交换机是什么东东!
    sip消息 响应状态码解析大全
    测试人员必看的经典书籍
    mysql创造并使用它
    linux系统备份与还原
    BNF范式(巴科斯范式)简介
  • 原文地址:https://www.cnblogs.com/cute/p/2076381.html
Copyright © 2020-2023  润新知