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

 

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

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

linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)

引言 使用场景: 我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本...
  • wang93IT
  • wang93IT
  • 2017年09月13日 20:13
  • 371

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

WMI Scripting HTML html; charset=gb2312"> document.forms[0].txtMACAddr.value=unescape(MACAddr); ...
  • lampsunny
  • lampsunny
  • 2012年03月26日 08:58
  • 804

Linux下通过shell获取网卡的ip地址和mac地址

tmp=`ifconfig | grep HWaddr`mac=`echo $tmp | awk -F" " '{print $5}'`echo $mac
  • Debian
  • Debian
  • 2010年10月25日 10:18
  • 12398

一句话脚本系列之获取eth0网卡的IP地址(或MAC地址)

一句话脚本完成获取指定网卡的IPv4的地址或MAC地址的功能。
  • nfer_cn
  • nfer_cn
  • 2015年01月11日 13:00
  • 7125

【C++】获得本机所有网卡的IP和MAC地址信息

【C++】获得本机所有网卡的IP和MAC地址信息 一台机器上可能有多个网卡,每一个网卡只有一个MAC地址,但是每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线...
  • lphbtm
  • lphbtm
  • 2016年03月11日 08:55
  • 456

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

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

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

 获取客户端IP:private string GetClientIP()  {   string result = HttpContext.Current.Request.ServerVariabl...
  • jxufewbt
  • jxufewbt
  • 2006年11月04日 15:14
  • 6134

VC++获取系统信息/获取OS/获取MAC/获取本地IP/判断是否为网吧

现在很多软件都有统计系统了,说好听点叫做统计用户习惯,改良产品,不好听点,呵呵,我就不说了。 核心我已经封装成类了,可以获取操作系统版本,MAC地址,本地IP地址,以及判定是否为网吧。 核心代码如下:...
  • sunflover454
  • sunflover454
  • 2016年05月28日 16:59
  • 2132

Java获取访问服务端的客户端IP和MAC地址

Java获取访问服务端的客户端IP和MAC地址
  • q179886903
  • q179886903
  • 2017年03月17日 12:41
  • 616
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript获取客户端网卡MAC地址和IP地址和计算机名
举报原因:
原因补充:

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