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

转载 2007年10月08日 22:37:00
  在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。在ASP.NET中,要获取服务器端的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=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>
        关键是用到两个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。

 

JS获取客户端IP地址、MAC和主机名的3个方法

这篇文章主要介绍了js获取客户端IP地址、MAC和主机名的7个方法汇总,JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考下 今天在搞JS(JavaScript)...
  • yuwq123
  • yuwq123
  • 2017年06月17日 10:32
  • 1294

js获取客户端网卡的IP地址、MAC地址

js获取客户端网卡的IP地址、MAC地址的方法                 MAC地址:  IP地址:  主机名:          var sMacAddr=""...
  • jbxue123
  • jbxue123
  • 2014年07月02日 17:30
  • 2347

JS获取客户端IP地址、MAC和主机名的7个方法汇总

这篇文章主要介绍了JS获取客户端IP地址、MAC和主机名的7个方法汇总,JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考下 今天在搞JS(javascript)获取客户端...
  • posonrick
  • posonrick
  • 2016年09月19日 12:42
  • 5298

js获取本机ip地址、mac地址、机器名

只在IE中适用 WMI Scripting HTML document.forms[0].txtMACAddr.value=unescape(MACAddr); document.forms[0...
  • god_7z1
  • god_7z1
  • 2014年11月24日 12:30
  • 1329

利用js获取客户端ip的方法

利用js获取客户端ip的方法获取ip有两种方式,下面分别对每种方法进行研究。1. 通过script标签引入url比如如下代码: alert(returnCity...
  • DoomHush
  • DoomHush
  • 2017年03月09日 21:12
  • 6064

java获取客户端IP地址和MAC地址

最近项目中要获得客户端的mac地址。服务端是移植的centos系统,arm架构的盒子。客户端是手机和移动设备。(其它场景应该也是类似的) 首先要获得ip地址: 根据客户端的http请求,利用req...
  • LGCSSX
  • LGCSSX
  • 2014年06月12日 15:45
  • 10212

php获取服务器端mac和客户端mac的地址

获取服务器mac
  • xiao_bai8
  • xiao_bai8
  • 2014年05月14日 13:24
  • 3453

ASP.NET获取客户端IP及MAC地址

朋友最近问如何获取客户端IP及MAC地址,一直想把这段给整理一下,契机来了;下边分为了C#后台获取的方法和前台Javascript(调用ActiveX)获取的方法,大家如果有好的方法一起讨论撒O(∩_...
  • u011966339
  • u011966339
  • 2017年04月19日 13:13
  • 1120

Java获取客户端ip mac地址

Java获取客户端ip mac地址
  • baohuan_love
  • baohuan_love
  • 2013年11月16日 10:06
  • 4061

java获取客户端IP地址以及mac地址

java获取客户端IP地址以及mac地址 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squ...
  • cai7095576
  • cai7095576
  • 2014年02月02日 08:31
  • 7309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]利用JS获取IE客户端IP及MAC的实现
举报原因:
原因补充:

(最多只允许输入30个字)