cpu序列號是硬件相關(guān)的,Java平臺本身力求做到硬件無關(guān)的。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供華安網(wǎng)站建設(shè)、華安做網(wǎng)站、華安網(wǎng)站設(shè)計(jì)、華安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、華安企業(yè)網(wǎng)站模板建站服務(wù),10年華安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
就只能按特例處理。在x86架構(gòu)下:
用JNI寫一個(gè)cpu信息類。該類至少包含一個(gè)讀取序列號的靜態(tài)方法,
從C中嵌入執(zhí)行匯編指令CPUID,輸入?yún)?shù)EAX=3
從EDX:ECX中得到cpu序列號。
再以類形式給java調(diào)用。
只有Pentium 3能夠讀取cpu的“序列號”,后來的cpu都沒有裝配這個(gè)信息。
一般cpu只能讀取cpu的“信息”而不是“序列號”
public?static?void?main(String[]?args)?{
String?HDserialnumber?=?getHdSerialInfo();
System.out.println(HDserialnumber);
}
public?static?String?getHdSerialInfo()?{
String?line?=?"";
String?HdSerial?=?"";//?定義變量?硬盤序列號
try?{
Process?proces?=?Runtime.getRuntime().exec("cmd?/c?dir?c:");//?獲取命令行參數(shù)
BufferedReader?buffreader?=?new?BufferedReader(new?InputStreamReader(proces.getInputStream()));
while?((line?=?buffreader.readLine())?!=?null)?{
if?(line.indexOf("卷的序列號是?")?!=?-1)?{?//?讀取參數(shù)并獲取硬盤序列號
HdSerial?=?line.substring(line.indexOf("卷的序列號是?")?+?"卷的序列號是?".length(),?line.length());
break;
}
}
}?catch?(IOException?e)?{
e.printStackTrace();
}
return?HdSerial;//?返回硬盤序列號?卷的序列?非物理
}
我是通過一個(gè)外部的JAR包來間接來獲得DLL文件的句柄 的,它就是jacob了,這是java com brige的簡寫,呵呵, 這個(gè)名稱起得非常形象吧,我用的版本是jacob 1.9的,你可以到它的官方網(wǎng)站去下載,下載回來的壓縮包中會有兩個(gè)文件我們需要用到的,一個(gè)是jacob.dll,一個(gè)是jacob.jar,jacob.dll可以將它復(fù)制到系統(tǒng)的system32目錄下,而jacob.jar文件,直接將它加入到項(xiàng)目的庫中就可以了。這兩項(xiàng)準(zhǔn)備工作完成后,就可以開始嘗試調(diào)用了。
新建一個(gè)類,引入jacob.jar中的兩個(gè)類,
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
然后通過dll的ControllerId來讀取DLL文件
public class Print {
private ActiveXComponent printController = null;
private Dispatch printObj = null;/*** 默認(rèn)controllerId的方法*/public Print(){try{printController = new ActiveXComponent(POSControler.Controler);
printObj = (Dispatch)printController.getObject();
}catch(Exception e){
printObj = new Dispatch();
如果方法dll中的方法是空參數(shù)時(shí),直接call一下就可以了,如
Dispatch.call(printObj,setDefaultFont);而調(diào)用有參數(shù)的方法時(shí),則需要將參數(shù)在后面依次傳入,注意按順序噢:
1.得到局域網(wǎng)網(wǎng)段,可由自己機(jī)器的IP來確定 (也可以手動獲取主機(jī)IP-CMD-ipconfig /all)
2.根據(jù)IP類型,一次遍歷局域網(wǎng)內(nèi)IP地址
JAVA類,編譯之后直接運(yùn)行便可以得到局域網(wǎng)內(nèi)所有IP,具體怎樣使用你自己編寫相應(yīng)代碼調(diào)用便可
代碼如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 后的結(jié)果集
public HashMap getPing(){ //用來得到ping后的結(jié)果集
return ping;
}
//當(dāng)前線程的數(shù)量, 防止過多線程摧毀電腦
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30個(gè)線程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本機(jī)的IP,得到網(wǎng)段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(".");
String ss = hostAddress.substring(0,k+1);
for(int i=1;i =255;i++){ //對所有局域網(wǎng)Ip
String iip=ss+i;
Ping(iip);
}
//等著所有Ping結(jié)束
while(threadCount0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals("true"))
System.out.println(key+"--"+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//讀取結(jié)果行
for (int i=1 ; i 7; i++)
input.readLine();
String line= input.readLine();
if (line.length() 17 || line.substring(8,17).equals("timed out"))
ping.put(ip,"false");
else
ping.put(ip,"true");
//線程結(jié)束
threadCount -= 1;
}catch (IOException e){}
}
}
}
標(biāo)題名稱:java代碼獲取序列號 java代碼獲取序列號怎么寫
當(dāng)前網(wǎng)址:http://m.newbst.com/article4/dogpsie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、微信公眾號、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)