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

    <html>  
    <head>  
    <title></title>  
    </head>  
    <body>  
    <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object>  
    <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"></object>   
    <form name="myForm">  
    <br/>MAC地址:<input type="text" name="macAddress">  
    <br/>IP地址:<input type="text" name="ipAddress">  
    <br/>主机名:<input type="text" name="hostName">  
    </form>  
    </body>  
    </html>
    <script language="javascript">  
    var sMacAddr="";  
    var sIPAddr="";  
    var sDNSName="";  
    var service = locator.ConnectServer();  
    service.Security_.ImpersonationLevel=3;  
    service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');  
    </script>  
    <script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">  
             if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){  
                               if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined" && objObject.DNSServerSearchOrder!=null)  
                                 sIPAddr = objObject.IPAddress(0);  
                               if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")  
                         sMacAddr = objObject.MACAddress;  
                               if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")  
                                             sDNSName = objObject.DNSHostName;  
              }  
    </script>  
      
    <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">  
    myForm.macAddress.value=sMacAddr;  
    myForm.ipAddress.value=sIPAddr;  
    myForm.hostName.value=sDNSName;  
    </script>  

代码是网上找到,但是经过修改。

原因是比如你笔记本有多张网卡,会出现获取你未联网或者禁用网卡的信息,解决办法:加限制条件:

objObject.DNSServerSearchOrder!=null

加上这个限制条件后,就能取到联网客户端的网卡IP地址了。

不过还有个问题就是只能限制IE浏览器,而且Activex必须要全部启用。

猜你喜欢

转载自blog.csdn.net/qingliang4321/article/details/22168195
今日推荐