用JavaScript和ActiveX获得的机器名
日期:2009-03-17 阅读:206 分类:Javascript
<script for="foo" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" language="JScript">
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
</script>
<script for="foo" event="OnObjectReady(objObject,objAsyncContext)" language="JScript">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</script>
<object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" viewastext=""></object>
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo"></object>
<script language="JScript">
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<form method="post" action="NICPost.asp" id="formfoo" name="formbar">
<input name="txtMACAddr" type="text">
<input name="txtIPAddr" type="text">
<input name="txtDNSName" type="text">
</form>
测试后发现,这一解决方案不仅能够获得客户端的机器名,同时还给出了客户端机器的MAC地址,以及客户端机器所在的内网IP地址(比如192.168.0.100).只是在运行该页面的时候,浏览器会给出不安全ActiveX控件的提示,并允许客户端禁止ActiveX控件的运行,不过我相信,这已经可以满足大部分需要用到这一功能的情景了.
from:
本页链接: http://www.scriptlover.com/static/488-JavaScript-机器名
标签: JavaScript 机器名
相关文章
- Javascript在chrome中辅助预订火车票的方法 2012-01-06
- 一款不错的日历控件 2008-07-31
- getElementsByClassName 2008-07-21
- Javascript常用函数归档 2008-12-01
- JS和VML画曲线图 2008-07-06