在别的服务器上用以下方法可以轻松实现获取客户端IP HttpContext.Current.Request.ServerVariables.GetValues("REMOTE_ADDR")[0].ToString();
HttpContext.Current.Request.UserHostAddress;
HttpContext.Current.Request.ServerVariables["Http_X_Forwarded_For"];
但不晓得我们公司的服务器防火墙咋搞的,取出来全是127.0.0.1所以我想用JS来实现取客户端IP,用<OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
</OBJECT>
<OBJECT id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" VIEWASTEXT>
</OBJECT> 
  两个ActiveX可以实现,但要客户端允许运行ActiveX 郁闷..............

解决方案 »

  1.   

    ASP.NET想内网穿透获取局域网IP不太可行,利用ActiveX是正确的
      

  2.   

    ActiveX这个东西一般都被拦截了,有没有什么其它好的方法
      

  3.   

    var ip = "";
         var obj = new ActiveXObject("rcbdyctl.Setting");
         ip = obj.GetIPAddress;
         obj = null; 不运行这些是不可能取到的.
      

  4.   

    if (Request.ServerVariables["TTP_VIA"] != null)
    {
    lIp = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    }
    else
    {
    lIp = Request.ServerVariables["REMOTE_ADDR"].ToString();
    }
    試下這個
      

  5.   

    to:fcuandy(手中无剑,心中亦无)
    var ip = "";
         var obj = new ActiveXObject("rcbdyctl.Setting");
         ip = obj.GetIPAddress;
         obj = null; 
    用这种方法出现这样的错误是怎么回事错误:Automaion服务器不能创建对象
      

  6.   

    呵呵
    我搜了一下说是要要注册一个Dllregsvr32 scrrun.dll但我注册了,一样不行同样谢谢fcuandy
      

  7.   

    出现这个错误 Automaion服务器不能创建对象
    把你的浏览器的安全级别调低一点就ok了
      

  8.   

    在没有ActiveX的支持下,单纯的JS是不可能实现你的要求...
      

  9.   

    http://www.cnblogs.com/jintan/archive/2005/09/29/246696.html
    可能就只有ActiveX了
    而且OBJECT id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" VIEWASTEXT>
    这个ActiveX大部分机器都自动装有
      

  10.   

    唉,恼火
    别人都可以通过JS搞个病毒在我机子上运行,怎么我想用JS取IP就不行呢,太不公平了
      

  11.   

    //的到本地ip
        public string GetIP()
        {
            string ip="";        if (Request.ServerVariables["Http_X_ForWarded_For"] != null)
            {
                ip = Request.ServerVariables["Http_X_ForWarded_For"].ToString();
            }        if(ip=="")
            {
                if (Request.ServerVariables["Remote_Addr"]!= null)
                {
                    ip = Request.ServerVariables["Remote_Addr"].ToString();
                }
            }        return ip;
        }
      

  12.   

    取IP有什么用,IP相同的多了
    而且没设ip的,IP还会变
    不知道用来干嘛
      

  13.   

    别人JS只是调用ActiveX的病毒而已...JS本身不具备任何控制本机系统的能力
      

  14.   

    呵呵,问题搞定了,不过走了点弯路
    我做了个页面放到别的服务器上去,在客户端请求返回IP来不过不晓得有没有什么方法能取出客户端内网的IP或者计算机名(非公网计算机)