java代码获取序列号 java代码获取序列号怎么写

java 获取CPU序列号

cpu序列号是硬件相关的,Java平台本身力求做到硬件无关的。

创新互联专业为企业提供华安网站建设、华安做网站、华安网站设计、华安网站制作等企业网站建设、网页设计与制作、华安企业网站模板建站服务,10年华安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

就只能按特例处理。在x86架构下:

用JNI写一个cpu信息类。该类至少包含一个读取序列号的静态方法,

从C中嵌入执行汇编指令CPUID,输入参数EAX=3

从EDX:ECX中得到cpu序列号。

再以类形式给java调用。

只有Pentium 3能够读取cpu的“序列号”,后来的cpu都没有装配这个信息。

一般cpu只能读取cpu的“信息”而不是“序列号”

java 怎么获取硬盘序列号

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:");// 获取命令行参数

BufferedReader buffreader = new BufferedReader(new InputStreamReader(proces.getInputStream()));

while ((line = buffreader.readLine()) != null) {

if (line.indexOf("卷的序列号是 ") != -1) { // 读取参数并获取硬盘序列号

HdSerial = line.substring(line.indexOf("卷的序列号是 ") + "卷的序列号是 ".length(), line.length());

break;

}

}

} catch (IOException e) {

e.printStackTrace();

}

return HdSerial;// 返回硬盘序列号 卷的序列 非物理

}

怎样用java 获取 硬盘 cpu 序列号,可调用dll实现

我是通过一个外部的JAR包来间接来获得DLL文件的句柄 的,它就是jacob了,这是java com brige的简写,呵呵, 这个名称起得非常形象吧,我用的版本是jacob 1.9的,你可以到它的官方网站去下载,下载回来的压缩包中会有两个文件我们需要用到的,一个是jacob.dll,一个是jacob.jar,jacob.dll可以将它复制到系统的system32目录下,而jacob.jar文件,直接将它加入到项目的库中就可以了。这两项准备工作完成后,就可以开始尝试调用了。

新建一个类,引入jacob.jar中的两个类,

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.Dispatch;

然后通过dll的ControllerId来读取DLL文件

public class Print {

private ActiveXComponent printController = null;

private Dispatch printObj = null;/*** 默认controllerId的方法*/public Print(){try{printController = new ActiveXComponent(POSControler.Controler);

printObj = (Dispatch)printController.getObject();

}catch(Exception e){

printObj = new Dispatch();

如果方法dll中的方法是空参数时,直接call一下就可以了,如

Dispatch.call(printObj,setDefaultFont);而调用有参数的方法时,则需要将参数在后面依次传入,注意按顺序噢:

JAVA如何获取局域网内所有安卓设备的ip地址,MAC以及序列号?

1.得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)

2.根据IP类型,一次遍历局域网内IP地址

JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可

代码如下::

package bean;

import java.io.*;

import java.util.*;

public class Ip{

static public HashMap ping; //ping 后的结果集

public HashMap getPing(){ //用来得到ping后的结果集

return ping;

}

//当前线程的数量, 防止过多线程摧毁电脑

static int threadCount = 0;

public Ip() {

ping = new HashMap();

}

public void Ping(String ip) throws Exception{

//最多30个线程

while(threadCount30)

Thread.sleep(50);

threadCount +=1;

PingIp p = new PingIp(ip);

p.start();

}

public void PingAll() throws Exception{

//首先得到本机的IP,得到网段

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++){ //对所有局域网Ip

String iip=ss+i;

Ping(iip);

}

//等着所有Ping结束

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);

//读取结果行

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");

//线程结束

threadCount -= 1;

}catch (IOException e){}

}

}

}


本文标题:java代码获取序列号 java代码获取序列号怎么写
文章转载:http://hbruida.cn/article/dogpsie.html