根据MAC地址生成软件的序列号[转]

下面是一个简单的生成liense的方法,通过机器的MAC地址,生成一个序列号。

#include "stdafx.h"

#include <stdio.h>

#include<iostream>

using namespace std;

/*///////////////////////////////////

// MAC: 45:b5:64:d3:53:7a

//        \ \      / /

//              x

//        / /      \ \

//p[i]: 7a 53 d3 64 b5 45 00 00

//  i:  0  1  2  3  4  5  6  7

printf("0x%016I64x\n",macnum);

//        ||||||^---按十六进制小写abcdef输出

//        |||^^^----__int64类型的数

//        |^^-------宽度16

//        ^---------左边补0

printf("%I64u\n",macnum);

//          ^--------按unsigned类型输出

//      ^^^---------__int64类型的数

*///////////////////////////////////////

__int64 getMacNum(string strMAC)

{

    __int64 macnum;


    p=(unsigned char *)&macnum;

    p[6]=0;

    p[7]=0;int i,v;

    unsigned char *p;

    char MAC[17];


    for(i=0;i<17;i++)

    {

        MAC[i] = strMAC[i];

    }


    for (i=0;i<6;i++)

    {

        sscanf(MAC+i*3,"%2x",&v);

        p[5-i]=(unsigned char)v;

    }


    return macnum;

}

int _tmain(int argc, _TCHAR* argv[])

{

string strMAC = "44-8A-5B-BF-81-23";

__int64 intMac = getMacNum(strMAC);

return 0;

}


From:根据MAC地址生成软件的序列号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。