当前位置:首页 » 打标机器 » java怎么获取电脑机器码

java怎么获取电脑机器码

发布时间: 2021-02-26 16:57:14

『壹』 怎样获得计算机的机器

可以用ipconfig /all命令得到mac地址
也可以用程序获取

通过Winsock提供底层网络支持的命令。使用Netbios的最大缺点是您必须在系统中安装了Netbios服务(如果您在windows网络中启用了文件共享的话,这就不是问题了)。除此此外,这种方法又快又准确。

Netbios API只包括了一个函数,就叫做Netbios。这个函数使用网络控制块(network control block)结构作为参数,这个结构告诉函数要做什么。结构的定义如下:
typedef struct _NCB {
UCHAR ncb_command;
UCHAR ncb_retcode;
UCHAR ncb_lsn;
UCHAR ncb_num;
PUCHAR ncb_buffer;
WORD ncb_length;
UCHAR ncb_callname[NCBNAMSZ];
UCHAR ncb_name[NCBNAMSZ];
UCHAR ncb_rto;
UCHAR ncb_sto;
void (CALLBACK *ncb_post) (struct _NCB *);
UCHAR ncb_lana_num;
UCHAR ncb_cmd_cplt;
#ifdef _WIN64
UCHAR ncb_reserve[18];
#else
UCHAR ncb_reserve[10];
#endif
HANDLE ncb_event;
} NCB, *PNCB;

重点在于ncb_command 成员。这个成员告诉Netbios该作什么。我们使用三个命令来探测MAC地址。他们在MSDN的定义如下:
命令描述:
NCBENUM Windows NT/2000: 列举系统中网卡的数量。使用此命令后,ncb_buffer成员指向由LANA_ENUM结构填充的缓冲区。
NCBENUM 不是标准的 NetBIOS 3.0 命令。

NCBRESET 重置网卡。网卡在接受新的NCB命令之前必须重置。
NCBASTAT 接受本地或远程接口卡的状态。使用此命令后,ncb_buffer成员指向由ADAPTER_STATUS结构填充的缓冲区,随后是NAME_BUFFER结构的数组。

下面就是取得您系统MAC地址的步骤:
1》列举所有的接口卡。
2》重置每块卡以取得它的正确信息。
3》查询接口卡,取得MAC地址并生成标准的冒号分隔格式。

下面就是实例源程序。
netbios.cpp

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;
#define bzero(thing,sz) memset(thing,0,sz)

bool GetAdapterInfo(int adapter_num, string &mac_addr)
{
// 重置网卡,以便我们可以查询
NCB Ncb;
memset(&Ncb, 0, sizeof(Ncb));
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = adapter_num;
if (Netbios(&Ncb) != NRC_GOODRET) {
mac_addr = "bad (NCBRESET): ";
mac_addr += string(Ncb.ncb_retcode);
return false;
}

// 准备取得接口卡的状态块
bzero(&Ncb,sizeof(Ncb);
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = adapter_num;
strcpy((char *) Ncb.ncb_callname, "* ");
struct ASTAT
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
} Adapter;
bzero(&Adapter,sizeof(Adapter));
Ncb.ncb_buffer = (unsigned char *)&Adapter;
Ncb.ncb_length = sizeof(Adapter);

// 取得网卡的信息,并且如果网卡正常工作的话,返回标准的冒号分隔格式。
if (Netbios(&Ncb) == 0)
{
char acMAC[18];
sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X ",
int (Adapter.adapt.adapter_address[0]),
int (Adapter.adapt.adapter_address[1]),
int (Adapter.adapt.adapter_address[2]),
int (Adapter.adapt.adapter_address[3]),
int (Adapter.adapt.adapter_address[4]),
int (Adapter.adapt.adapter_address[5]));
mac_addr = acMAC;
return true;
}
else
{
mac_addr = "bad (NCBASTAT): ";
mac_addr += string(Ncb.ncb_retcode);
return false;
}
}

int main()
{
// 取得网卡列表
LANA_ENUM AdapterList;
NCB Ncb;
memset(&Ncb, 0, sizeof(NCB));
Ncb.ncb_command = NCBENUM;
Ncb.ncb_buffer = (unsigned char *)&AdapterList;
Ncb.ncb_length = sizeof(AdapterList);
Netbios(&Ncb);

// 取得本地以太网卡的地址
string mac_addr;
for (int i = 0; i < AdapterList.length - 1; ++i)
{
if (GetAdapterInfo(AdapterList.lana[i], mac_addr))
{
cout < < "Adapter " < < int (AdapterList.lana[i]) < <
" 's MAC is " < < mac_addr < < endl;
}
else
{
cerr < < "Failed to get MAC address! Do you " < < endl;
cerr < < "have the NetBIOS protocol installed? " < < endl;
break;
}
}

return 0;
}

『贰』 如何获取自己电脑的机器码

品牌机的吧,在机箱上贴着

『叁』 怎样才能获取本电脑的机器码呢

你说复的机器码是电脑的CPUID还是硬盘序制列号啊,你用的是正版软件的话可以找软件公司的客服去咨询,让他们给你解决,如果你的软件是从网上直接下载的,那下载的压缩包里应该有详细的说明,你仔细阅读一下,看看能否解决。

『肆』 获取电脑机器码

已经发到你邮箱,
使用C#编写,采用计算网卡的物理地址和CPU的出厂ID来达到目的。
软件已经被加过壳。

『伍』 如何获得电脑机器码,获得后如何修改

你朋友买的来是正版软件,一自般正版软件对应一个CKey,也就是是注册码,和机器码绑定。
除非你哥们把自己电脑上的软件卸载,否则你不能用。
机器码问题:
这里的机器码一般都是
取硬盘特征字
一般软件注册
都会取你的
硬盘特征字
在通过一系列算法算出一个序列号的
而每个硬盘的硬盘特征字
是不一样的
你改了也没用
改了软件检测的还是你原来的机器码
最终途径是要
破解他的算法
这是资深专家能做到的。
或者找注册机
,直接修改,貌似许多注册机都不太管用,多试几款注册机吧。
网络搜索下载即可。
就这样,祝好运。。。

『陆』 如何获取电脑机器码

机器码有不同的计算方式,所以无法得知的,一般机器码都是将某一个硬件或者全部硬件的序列号进行一个特定的计算之后得出来的

望采纳

『柒』 怎么获得机器码

一般情况来下,我们就写个VXD或者源DRIVER来完成.但是现在,通过MS的S.M.A.R.T.接口,我们可以直接从RING3调用API DeviceIoControl()来获取硬盘信息. 另外,也有编译好的版本供大家平时使用.欢迎下载. 注:在WIN98SE,WINDOWS ME中,S.M.A.R.T并不缺省安装.请将SMARTVSD.VXD拷贝到%SYSTEM%\IOSUBSYS目录下.
在WINDOWS2000下,由于非ADMINISTRATORS组的用户对硬盘连GENERIC_READ的权限也没有,所以请以ADMINISTRATOR登录后使用.

『捌』 如何查询自己电脑的机器码

这里使用WIN7系统演示查看本机机器码(MAC地址)的操作流程:

一、打开电脑,按下打回开运行窗答口的快捷键WIN+R键。

『玖』 用JAVA代码如何获取主板编码,机器配置信息等

JAVA System类中的 getProperty(String key)方法
键 相关键值描述
其中key值为
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

『拾』 如何获取机器码

所谓机器的机器码其实就是电脑的一些特征码,包括硬盘序列号、CPU编号、BIOS编号等专等和硬件有关的编号。可以属用在VC++中获取这些编号,并用一定的算法将他们组合后,就生成了一个机器码,用这个机器码按照一定的算法生成一个注册码,这样就对你的软件进行了保护,使得只有拥有这个机器码的机器才能安装你的软件。

获取硬盘序列号的方法如下(代码)
以驱动器C为例:
char m_Volume[256];//卷标名
char m_FileSysName[256];
DWORD m_SerialNum;//序列号
DWORD m_FileNameLength;
DWORD m_FileSysFlag;
::GetVolumeInformation("c:\\",
m_Volume,
256,
&m_SerialNum,
&m_FileNameLength,
&m_FileSysFlag,
256);执行该函数后,m_Volume就是卷标名字符串,m_SerialNum就是序列号

热点内容
线切割怎么导图 发布:2021-03-15 14:26:06 浏览:709
1台皮秒机器多少钱 发布:2021-03-15 14:25:49 浏览:623
焊接法兰如何根据口径配螺栓 发布:2021-03-15 14:24:39 浏览:883
印章雕刻机小型多少钱 发布:2021-03-15 14:22:33 浏览:395
切割机三五零木工貝片多少钱 发布:2021-03-15 14:22:30 浏览:432
加工盗砖片什么榉好 发布:2021-03-15 14:16:57 浏览:320
北洋机器局制造的银元什么样 发布:2021-03-15 14:16:52 浏览:662
未来小七机器人怎么更新 发布:2021-03-15 14:16:33 浏览:622
rexroth加工中心乱刀怎么自动调整 发布:2021-03-15 14:15:05 浏览:450
机械键盘的键帽怎么选 发布:2021-03-15 14:15:02 浏览:506