实践-全程

预测未来的最好办法,就是把它创造出来 --- 阿伦.凯
数据加载中……

2007年8月16日

利用JS获取IE客户端IP及MAC的实现

     在C/S中取得客户端的MAC地址简单,就算JAVA再麻烦也是简单的,但是模式推至B/S结构,就麻烦了~有时候MAC地址比IP地址更真实!老板不知道哪里听到的MAC地址不能改,IP地址能随便改的谣言,非要加这个功能,兄弟们一定很头大吧~往下看,能解决,就是使用JS来调用ActiveX来交互~

 1<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
 2<META http-equiv=Content-Type content="text/html; charset=gb2312">
 3<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
 4document.forms[0].txtMACAddr.value=unescape(MACAddr);
 5document.forms[0].txtIPAddr.value=unescape(IPAddr);
 6document.forms[0].txtDNSName.value=unescape(sDNSName);
 7//document.formbar.submit();
 8
</SCRIPT>
 9
10<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
11if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
12{
13if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
14MACAddr = objObject.MACAddress;
15if(objObject.IPEnabled && objObject.IPAddress(0!= null && objObject.IPAddress(0!= "undefined")
16IPAddr = objObject.IPAddress(0);
17if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
18sDNSName = objObject.DNSHostName;
19}

20
</SCRIPT>
21
22<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
23<BODY>
24<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
25<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
26<SCRIPT language=JScript>
27var service = locator.ConnectServer();
28var MACAddr ;
29var IPAddr ;
30var DomainAddr;
31var sDNSName;
32service.Security_.ImpersonationLevel=3;
33service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
34
</SCRIPT>
35
36<FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr> <INPUT value=192.168.0.2 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM></BODY></HTML>
37
核心就是调用了两个系统自带的ActiveX进行交互~
但是要注意,1,不能跨浏览器!2.调用的时候会有IE提示~还是慎用的好!

posted @ 2007-08-16 17:01 阿南 阅读(1639) | 评论 (3)编辑 收藏
java访问注册表

    今天碰到了需要访问注册表的问题,索性研究一下下~JDK1.4开始,sun就已经提供了访问注册表的jar包了,但是好像大家都不是很感兴趣~没有几个人说它好用的。
    google得到Windows Registry~好东西,底层使用jni直接访问WIN32下的注册表~可以实现对整个注册表的完全掌控,可增可减~呵呵出了问题不管我事!
     本着好东西要分享的原则,贡献一下搜索的成果物!
     http://trustice.com/java/jnireg/

posted @ 2007-08-16 15:25 阿南 阅读(554) | 评论 (0)编辑 收藏