javascript获取客户端网卡MAC地址和IP地址和计算机名

转载 2007年09月18日 22:43:00

在做 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交互

 

相关文章推荐

Java/JSP获得客户端网卡MAC地址的三种方法解析(附:获得真实IP)

Java/JSP获得客户端网卡MAC地址的三种方法解析 从网上查找资料java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种。 1、通过命令方式,在客户端执行Ipconfig 等...
  • cactusz
  • cactusz
  • 2017年07月06日 15:49
  • 158

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

js获取客户端网卡的IP地址、MAC地址的方法                 MAC地址:  IP地址:  主机名:          var sMacAddr=""...

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

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

.net通过获取客户端IP地址反查出用户的计算机名

这个功能看似很少用到,但又非常实用,看似简单,但又在其中存在很多未知因素造成让人悲痛莫名的负能量。。。 这是公司内部最近在使用的功能,因为是DHCP,所以有时会根据计算机名做一些统计和权限的设置。 也...

Asp.net MVC获取访问系统的客户端计算机的主机名和IP地址

本文转载自:http://www.cnblogs.com/purplefox2008/p/5983957.html string HostName = string.Empty; st...

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

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

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

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

asp.net 获取客户端ip和mac地址

  • 2012年12月10日 15:20
  • 2KB
  • 下载

.net获取客户端IP,Mac地址

  • 2013年03月28日 15:25
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript获取客户端网卡MAC地址和IP地址和计算机名
举报原因:
原因补充:

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