QQ登录

只需一步,快速开始

364上位机VC MFC利用网卡MAC生成软件注册码

[ 复制链接 ]

364上位机VC MFC利用网卡MAC生成软件注册码

364上位机VC MFC利用网卡MAC生成软件注册码

利用网卡MAC生成软件注册码
功能展示
网卡的MAC地址如人的指纹,相同概率极低,我们就可以根据网卡的地址生成唯一的用于我们软件的注册码,当前例程就实现了这一功能,效果如图,点击<获取本机网卡MAC>可以获得本机的网卡地址并显示在编辑框中,点击<用MAC生成注册码>软件会用本机的MAC地址生成注册码,也显示在编辑框中;

要点提示
当前例程通过函数Netbios()获取网卡的MAC地址,要注意的是在使用此函数前得包含函数所在头文件及库文件,即包含以下两段代码#include "nb30.h“ #pragma comment(lib,"netapi32.lib")

网卡序列号例程将之分成3段,再将3段的字符转换其对应的整形数值,再经过加密算法生成另外的数值并转换为ASCII码显示出来作为注册码使用;

实现功能
1.新建基于对话框的应用程序
2.在主对话框中包含网卡操作函数所在头文件#include "nb30.h"
#pragma comment(lib,“netapi32.lib”)并依照界面添加编辑框IDC_EDIT1,IDC_EDIT2用于显示获得的网址,生成的注册码,再添加按钮《获取本机网卡MAC》《用MAC生成注册码》关联按钮的点击函数
void CGkbc8Dlg::OnGetmac()
{
NCB ncb;
LANA_ENUM lenum;
ADAPTER_STATUS state;
UCHAR ucReturnCode;
ncb.ncb_command=NCBENUM;
ncb.ncb_buffer=(UCHAR*)&lenum;
ncb.ncb_length=sizeof(lenum);
ucReturnCode=Netbios(&ncb);
if(lenum.length>=0)
{
int num=lenum.lana[0];

memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBRESET;
ncb.ncb_lana_num=num;
ucReturnCode=Netbios(&ncb);
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBASTAT;
ncb.ncb_lana_num=num;
ncb.ncb_buffer=(unsigned char *)&state;
ncb.ncb_length=sizeof(state);
strcpy( (char *)ncb.ncb_callname,"*" );
ucReturnCode=Netbios(&ncb);
CString strMac;
strMac.Format("%02X%02X-%02X%02X-%02X%02X\n",
state.adapter_address[0],
state.adapter_address[1],
state.adapter_address[2],
state.adapter_address[3],
state.adapter_address[4],
state.adapter_address[5]);
SetDlgItemText(IDC_EDIT1,strMac);
}
else
MessageBox("未检测到网卡");
}
void CGkbc8Dlg::OnGenerate()
{
char base[64]={'d','c','a','b','h','g','e','f','l','k',
'i','j','p','o','m','n','t','s','q','r',
'x','w','u','v','b','a','y','z','f','e',
'c','d','j','i','g','h','n','m','k','l',
'r','q','o','p','v','u','s','t','z','y',
'j','t','o','v','w','m','q','x','p','f',
'w','x','d','c'};
CString code;
CString regcode,tmp;
GetDlgItemText(IDC_EDIT1,code);
code.MakeLower();
//<>
int num;
char temp;
for(int i=0;i<4;i++)
{
temp=code.GetAt(i);
if(temp>='a'&&temp<='f')
num=temp-'a'+10;

else
num=temp-'0';
tmp.Format("%c",base[num*4+i]);
regcode+=tmp;
}
for(i=0;i<4;i++)
{
temp=code.GetAt(i+5);
if(temp>='a'&&temp<='f')
num=temp-'a'+10;
else
num=temp-'0';
tmp.Format("%c",base[num*4+i]);
regcode+=tmp;
}
for(i=0;i<4;i++)
{
temp=code.GetAt(i+10);
if(temp>='a'&&temp<='f')
num=temp-'a'+10;
else
num=temp-'0';
tmp.Format("%c",base[num*4+i]);
regcode+=tmp;
}
regcode.MakeUpper();
SetDlgItemText(IDC_EDIT2,regcode);
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:364.上位机VC MFC利用网卡MAC生成软件注册码.zip 
文件大小:136.97 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索