通过JavaScript和Applet获取客户端硬盘号

仅通过JS实现,适用于IE10+浏览器

<script>

function getSerialNumber() {

var retVal = "";

var locator = new ActiveXObject ("WbemScripting.SWbemLocator");

var service = locator.ConnectServer(".");

var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive");

var enu = new Enumerator (properties);

for (;!enu.atEnd();enu.moveNext ()){

var p = enu.item ();

if(retVal!=‘‘){

retVal += ",";

}

retVal += p.SerialNumber;

}

return retVal;

}

document.write("硬盘号为:"+getSerialNumber());

</script>

//************************************************************************************************************

JavaApplet实现:

import java.applet.Applet;

import java.awt.Graphics;

import java.io.IOException;

import java.util.Scanner;

public class HelloApplet extends Applet {

private static final long serialVersionUID = 5511892956119084309L;

@Override

public void paint(Graphics g) {

g.drawString(getDriveSerialNumber(), 10, 10);

}

public String getDriveSerialNumber(){

String retValue = "";

try {

Process process = Runtime.getRuntime().exec("wmic diskdrive get serialnumber");

try {

process.waitFor();

} catch (InterruptedException e) {

//

}

Scanner scanner = new Scanner(process.getInputStream());

while (scanner.hasNext()) {

String line =  scanner.next();

if ("SerialNumber".equals(line)) {

continue;

}

if (retValue.length() > 0) {

retValue += ",";

}

retValue += line;

}

scanner.close();

if (retValue.length() == 0) {

retValue = "Failed to get serialnumber";

}

} catch (IOException e) {

e.printStackTrace();

retValue = "Error: " + e.getMessage();

}

return retValue;

}

}

//===========================html部分

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Example of serialnumber-applet.</title>    </head>

<body>

<object classid="clsid:CAFEEFAC-0016-0000-FFFF-ABCDEFFEDCBA"

type="application/x-java-applet" name="diskSerialNumber"

style="position: absolute; top: -1000px; left: -1000px;">

<param name="code" value="HelloApplet ">

<param name="archive" value="final.jar">

<param name="mayscript" value="true">

<param name="scriptable" value="true">

<param name="width" value="0">

<param name="height" value="0">

</object>

<script type="text/javascript">

if (typeof (document.diskSerialNumber.isActive) == "undefined") {

document.write("Unable to detect serialnumber.");

} else {

var serialnumber = document.diskSerialNumber.getDriveSerialNumber();

if (serialnumber.length > 0) {

document.write("硬盘:<br />");

document.write("<hr>");

document.write(serialnumber);

}

}

</script>

</body>

</html>

//applet签名

可参考:http://my.oschina.net/u/204292/blog/403337

JS与applet交互可参考:http://my.oschina.net/penngo/blog/112513

时间: 2024-11-15 07:36:11

通过JavaScript和Applet获取客户端硬盘号的相关文章

获取登录域帐号信息方式之 —-IIS(VB)

前言 java web 项目如何获取客户端登录帐号信息(用于SSO或其他) 之前总结过一篇在Java 的Web 项目中获取客户端帐号信息的文章.参见以上链接的内容. 除了那些方式之外, 还可以使用IIS 和VB  来获取客户端域帐号信息. (这里介绍的使用场景还是在Java web 项目中使用IIS 和VB 的方式来获取域帐号信息.) 实际使用场景 环境状况 1. Java web 项目, 部署在 机器A 的tomcat 上(不在域) 2. IIS 服务器, 在机器B 上(在域上) 3. 客户端

JavaScript获取客户端计算机硬件及系统等信息的方法

JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInfo(){ var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); //CPU信息 var cpu = new En

【Javascript】获取客户端MAC地址(仅支持IE)

<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo

获取CPU系列号,硬盘系

unit Secrity; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,nb30;{重要引用} type PASTAT = ^TASTAT; TASTAT = record adapter : TAdapterStatus; name_buf : TNameBuffer; end; TForm1 = class(TForm)

JavaScript 获取客户端计算机硬件及系统信息

通过WMI来实现获取客户端计算机硬件及系统信息: //系统信息获取 function getSysInfo(){ var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); //CPU信息 var cpu = new Enumerator (service.ExecQuery("SELECT * FROM

php获取url井号后的参数(描点#后参数)

有时候我们需要获取url井号后的参数(即描点#后的参数),如下面的链接:http://www.xindingyue.com/example/#comment-1314 现在要获取#号后面的comment-1314,如何通过php获取呢? 首先声明php是无法直接获取的,因为这是向浏览器客户端发送的参数,在服务端压根就不接受这样的参数,$_SERVER["REQUEST_URI"]变量里是不会包含#号后面的东西的,所以无法像我们平时用php处理url那样了,那到底如何获取呢? 这是向客户

服务器如何获取客户端用户的(城市)地址[获得真实IP再获得城市]

在web开发中,经常有需求,需要知道客户用户现在所在位置(城市),一般原理是这样,第一:先通过request对象获得远端用户的ip地址,第二:再利用第三方免费的(接口)服务,通过ip查询出用户的所在城市, 我擅长jsp,下面我们就已jsp为例: 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了 Apache,Nagix等反向代理(此处不懂反向代理请点击   点击打开链接 )软件就不能获取到客户端的真实IP地址

js获取客户端MAC地址

最近遇到一个需求,医院要求呼叫中心账号必须对应MAC地址,也就是说该MAC地址必须和呼叫中心账号对应才可使用,这可就难道我了,这需求就要求每次都判断用户登录的电脑MAC地址是否有呼叫中心账号,当然只针对IE浏览器,毕竟其他浏览器是直接就给禁止此功能的. 那么首先问题一:如何才能通过页面访问得到本地MAC地址 问题二:每台电脑上都有多个MAC地址,那么应该选用哪一个MAC地址 MAC地址是每台电脑链接网络的物理地址,是唯一标识,想要从浏览器获取电脑的信息,那么就需要ActiveX,所以其他浏览器是

【Javascript】JS获取ASP.NET CheckBoxList控件的Text和Value

由于在客户端用js是无法直接获取到ASP.NET的控件CheckboxList的值的,所以采用以下解解方案: 服务器端代码: public void LoadAllTags() { var tagList = tagBO.GetAllTags(); cbTagList.DataSource = tagList; cbTagList.DataTextField = "TagName"; cbTagList.DataValueField = "Id"; cbTagLis