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

2016-02-19 15:20 5 1 收藏

下面图老师小编要跟大家分享利用JS获取IE客户端IP及MAC的实现,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - Web开发 】

在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。在ASP.NET中,要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。

        具体实现的html和javascript如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

HTMLHEADTITLEWMI 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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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=NICPost.asp method=postINPUT 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

        关键是用到两个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交互,脚本可以是js或Vbs我个人喜欢用js。

来源:https://www.tulaoshi.com/n/20160219/1609435.html

延伸阅读
void CtsclientDlg::OnBnClickedOk() {  // TODO: 在此添加控件通知处理程序代码  WORD wVersionRequested;  WSADATA wsaData;  int err;  int nScokErr;  wVersionRequested=MAKEWORD(1,1);  //生成版本号1.1  err=WSAStartup(wVersionRequested,&wsaData);  if(err!=0)  {   Mes...
标签: 电脑入门
我们在工作中,经常会使用到邮件,MAC系统中的Mail客户端就是MAC用户们收发邮件的工具。今天图老师小编就给大家介绍下MAC系统Mail的一些使用小技巧。 Mail的使用技巧: 1.当您开始使用 Mail 时,垃圾信过滤功能会带您走过一段训练期。Mail 会将认定为垃圾信的邮件在收件匣中以棕色标示出来。如果 Mail 将某些信件误认为垃圾信,请按非垃...
标签: 服务器
win客户端和linux客户端的区别   Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。 Samba采用C/S模式, 其工作机制是...
    我们知道,在Asp.net中适当的使用Html控件有许多方便之处,Html控件既能在客户端进行脚本处理,又能在网页提交至服务器后在cs文件中控制,如果用单独的Web服务器控件则不能做到这一点,限制了我们开发的灵活性.因此我们会在好多地方会使用到HtmlButton控件.下面就谈谈该控件一个使用的小技巧: 如果要点击HtmlButton后使网页提交,...

经验教程

708

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部