zoukankan      html  css  js  c++  java
  • JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:

    一、使用JS获取客户端IP的几个方法

    方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000)。
    获取客户端IP代码:

    复制代码代码如下:

    <HTML>
    <HEAD>
    <TITLE>GetLocalIP</TITLE>
    </HEAD>
    <BODY>
    获取IP:
    <script language="JavaScript"> function GetLocalIPAddr(){ var oSetting = null; var ip = null; try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if (ip.length == 0){ return "没有连接到Internet"; } oSetting = null; }catch(e){ return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>") </script> 
    </BODY>
    </HTML>

    方法二(所有的平台及浏览器):
    获取客户端处在网络中的IP,前提是客户得联网。使用的是新浪接口。

    复制代码代码如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JavaScript获取客户端IP[利用新浪接口]</title>
    </head>
    <body>
    <script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script>       <!--获取接口数据,注意charset -->
    <script type="text/javascript"> 
    document.writeln("IP地址:"+ILData[0]+"<br />");             //输出接口数据中的IP地址 
    document.writeln("地址类型:"+ILData[1]+"<br />");         //输出接口数据中的IP地址的类型 
    document.writeln("地址类型:"+ILData[2]+"<br />");         //输出接口数据中的IP地址的省市
    document.writeln("地址类型:"+ILData[3]+"<br />");         //输出接口数据中的IP地址的
    document.writeln("地址类型:"+ILData[4]+"<br />");         //输出接口数据中的IP地址的运营商
    </script>
    </body>
    </html>

    方法三(所有的平台及浏览器):
    使用的搜狐接口

    复制代码代码如下:

    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  
    <script type="text/javascript">  
    document.write(returnCitySN["cip"]+','+returnCitySN["cname"])  
    </script>

    方法四:太平洋电脑网IP查询接口:

    http://whois.pconline.com.cn/?ip=0.0.0.0

    把0.0.0.0换成IP地址,页面上还有其他无关内容,这些内容是告诉我们哪些接口可以调用、接口调用参数和使用方法等

    通过上边的js接口调用就可以判断用于属于哪个城市,直接显示该城市的相关信息了,对于需要城市切换的网站,首次判断用户来源非常有帮助。

    二、使用JS获取计算机名、MAC地址、局域网IP

    方法一(只针对IE且客户端的IE允许AcitiveX运行):
    调用VBS脚本,获取计算机名(有些人不知道什么是计算机名,简单解释就是它是这台机器的物理名称而不是你在用的那个用户名)和登录的用户名。

    复制代码代码如下:

    <HTML>
    <HEAD>
    <TITLE>WMI Scripting HTML</TITLE>
    </HEAD>
    <BODY>
    <script language=javascript>
    var WshShell =new ActiveXObject("WScript.Shell");
    document.write("计算机名 = "+ WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")+"<br/>");
    document.write("登录用户名 = "+ WshShell.ExpandEnvironmentStrings("%USERNAME%")+"<br/>");
    </script>
    </BODY>
    </HTML>

    方法二(只针对IE且客户端的IE允许AcitiveX运行):
    获取计算机名、登录的用户名和域名(如果你加入了域,显示你这台机器处在哪个域中)。

    复制代码代码如下:

    <HTML>
    <HEAD>
    <TITLE>WMI Scripting HTML</TITLE>
    </HEAD>
    <BODY>
    <script language=javascript>
    var wshNetwork = new ActiveXObject("WScript.Network");
    document.write("域名       = "+ wshNetwork.UserDomain+"<br/>");
    document.write("计算机名   = "+ wshNetwork.ComputerName+"<br/>");
    document.write("登录用户名 = "+ wshNetwork.UserName+"<br/>");
    </script>
    </BODY>
    </HTML>

    方法三(只针对IE且客户端的IE允许AcitiveX运行):
    能够获取到局域网IP地址,本机的MAC,以及机器名(代码来源网络)。

    复制代码代码如下:

    <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")
                                             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>

  • 相关阅读:
    hiveserver2 with kerberos authentication
    python Basic usage
    python Quicksort demo
    Python HeapSort
    mrunit for wordcount demo
    CCDH证书
    Hadoop question list
    Hadoop Yarn core concepts
    Hadoop Resource
    Hadoop could not find or load main class
  • 原文地址:https://www.cnblogs.com/zhangycun/p/7339346.html
Copyright © 2011-2022 走看看