<script type="text/javascript" language="javascript">
function getlocalipaddress()
{
    var obj = null;
    var ip = null;
    try
    {
        obj = new activexobject("rcbdyctl.setting");
        ip = obj.getipaddress;
        obj = null;
    }
    catch(e)
    {
       return ip;
    }
    
    return ip;
}
alert("你的ip是:"+getlocalipaddress());
document.write("你的ip是:" + getlocalipaddress());
</script>以上代码是我在网上找到的,获得本地IP地址的源代码,但是返回值是空值,我不知道是为什么?求高手指点,怎么样才能获得本地IP地址?急,在线等待!

解决方案 »

  1.   

    <script language="JavaScript">  
    function GetLocalIPAddr(){  
    var oSetting = null;  
    var ip = null;  
    try{  
    oSetting = new ActiveXObject("rcbdyctl.Setting");  
    ip = oSetting.GetIPAddress;  
    alert(ip);  
    if (ip.length == 0){  
    return "没有连接到Internet";  
    }  
    oSetting = null;  
    }catch(e){  
    return ip;  
    }  
    return ip;  
    }  
    alert(GetLocalIPAddr())  
    </script>  
      

  2.   

    javascript的我没有,我用的是java获取IP。String ip = "";
    if (request.getHeader("x-forwarded-for") == null) { 
        ip = request.getRemoteAddr(); 
    }else{ 
        ip = request.getHeader("x-forwarded-for"); 
    }
      

  3.   

    谢谢,解决了一个我很纠结的问题!我以前没有做判断就直接ip = request.getRemoteAddr(); 
    结果获得IP地址上传到服务器是上不正确,做判断以后就好了,这是为什么?能否解释一下?
      

  4.   

    在应用服务器的上层估计还有 Web 反向代理服务器,所以才会造成 request.getRemoteAddr(); 获得的地址不正确的结果,这样只能获得代理服务器的 IP 地址。使用 X-Forwarded-For 需要注意的是,如果经过多层的反向代理服务器,那么从中获得的 IP 地址是以逗号分隔的地址段,第一段才是客户端的 IP 地址,后面几段都是代理服务器的地址。
      

  5.   

    Weblogic代理好像设置的是属性:WL-Proxy-Client-IP
      

  6.   

    正确的获得IP的方法是:  public String getIpAddr(HttpServletRequest request) {   
          String ip = request.getHeader("x-forwarded-for");   
          if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {   
             ip = request.getHeader("Proxy-Client-IP");   
         }   
          if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {   
             ip = request.getHeader("WL-Proxy-Client-IP");   
          }   
         if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {   
              ip = request.getRemoteAddr();   
         }   
         return ip;   
    }