在做
B/S
结构的系统时,我们常常需要获取客户端的一些信息,如
IP
和
MAC
,以结合身份验证。
要获取服务器端的
MAC
很容易,但是要获取客户端的
MAC
的地址确要花费一翻心思,通常的做法是调用
Win32API
或直接调用
nbtstat
命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用
Javascript
,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。
具体实现的html和javascript如下:
<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>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
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>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></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 id="formfoo" name="formbar" action="index.do" method="post"><INPUT value="00-11-11-B4-52-EF" name="txtMACAddr"> <INPUT value="210.42.38.50" name="txtIPAddr"> <INPUT value="zhupan" name="txtDNSName"> </FORM></BODY></HTML>
其实最关键的还是用到两个ActiveX:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
不过这两个ActiveX都是系统自带,不用去下载或注册。
接下来的工作就是用脚本和ActiveX交互
相关推荐
javascript获取客户端网卡MAC地址和IP地址和计算机名
JS获取客户端IP地址、MAC和主机名的7个方法汇总
但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行...
JavaScript 获取客户端计算机硬件及系统信息,可获取 1、客户端MAC地址 2、客户端CPU信息 3、客户端其他硬件信息
JavaScript获取客户端计算机硬件及系统信息2009[借鉴].pdf
本文实例讲述了JS简单获取客户端IP地址的方法。分享给大家供大家参考,具体如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>使用搜狐接口获取客户端IP地址</...
11.javascript获取客户端网卡MAC地址和IP地址和计算机名 7 12.JAVA反射 8 13. 自定义ClassLoader 13 14. double保留两位数的两个方案 18 16. 用户输入输出,文件输入输出范例(1) 19 17.以指定符号分割显示 22 17. ...
何通过JavaScript获取客户端的时间通俗易懂,只要有一点JS代码的人都能看懂和学会。
只能在IE下运行. 正文: var MACAddr='' ;... var IPAddr='' ; var DomainAddr=''; var sDNSName=''; function GetAdapterInfo() { var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); ......
ASP.NET获取IP和MAC 获取本地IP和MAC ASP.NET获取IP和MAC 获取客户端IP和MAC地址 ASP.NET获取客户端IP和MAC
本文为大家详细介绍下如何使用JavaScript获取客户端计算机硬件及系统等信息,下面有个不错的示例,感兴趣的朋友可以参考下
使用JavaScript获取客户端的鼠标坐标信息
实现chrome获取MAC地址的扩展。 通过c++获取MAC地址,然后通过Chrome native message 技术调用C++程序,在javascript中获取MAC地址
NULL 博文链接:https://onestopweb.iteye.com/blog/2263088
很久以来,我都是经过http://fw.qq.com/ipaddress来得到客户端用户的IP,这个方法简单、快速、实用 。 我们调用它的写法是: [removed][removed] 它可以返回用户IP和地点,比喻: var IPData = new Array(220....
今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上...