當前位置:首頁 » 打標機器 » 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