js获取客户端网卡的、的方法。
代码:
-
<html>
-
<head>
-
<title>js获取客户端网卡的IP地址与MAC地址---</title>
-
</head>
-
<body>
-
<object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>
-
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object>
-
<form name="myForm">
-
<br/>MAC地址:<input type="text" name="macAddress">
-
<br/>IP地址:<input type="text" name="ipAddress">
-
<br/>主机名:<input type="text" name="hostName">
-
</form>
-
</body>
-
</html>
-
<script language="javascript">
-
var sMacAddr="";
-
var sIPAddr="";
-
var sDNSName="";
-
var service = locator.ConnectServer();
-
service.Security_.ImpersonationLevel=3;
-
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
-
</script>
-
<script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
-
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
-
if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined" && objObject.DNSServerSearchOrder!=null)
-
sIPAddr = objObject.IPAddress(0);
-
if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
-
sMacAddr = objObject.MACAddress;
-
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
-
sDNSName = objObject.DNSHostName;
-
}
-
</script>
-
-
-
<script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">
-
myForm.macAddress.value=sMacAddr;
-
myForm.ipAddress.value=sIPAddr;
-
myForm.hostName.value=sDNSName;
-
</script>
以上代码源自网络,有修改。
原因是比如你笔记本有多张网卡,会出现获取你未联网或者禁用网卡的信息。
解决办法:加限制条件:
objObject.DNSServerSearchOrder!=null
加上这个限制条件后,就能取到联网客户端的网卡IP地址了。
不过还有个问题就是只能限制IE浏览器,而且Activex必须要全部启用。
阅读(3028) | 评论(0) | 转发(0) |