获取当前用户本机的ip地址。网址发布到服务器后,怎么获取访问网站的当前用户本机的ip啊?
  IPHostEntry oIPHost = Dns.Resolve(Environment.MachineName);
        if (oIPHost.AddressList.Length > 0)
        {
            string strHostIP = oIPHost.AddressList[0].ToString();
   
        }这个取到的是服务器的ip地址。
  
    public static string GetClientIp()
    {
        string l_ret = string.Empty;
        if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
            l_ret = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);        if (string.IsNullOrEmpty(l_ret))
            l_ret = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
        return l_ret;
    }这个取到的是外网的网址的ip。

解决方案 »

  1.   

    Quote: 引用 楼主 qsa2222 的回复:

    获取当前用户本机的ip地址。网站发布到服务器后,怎么获取访问网站的当前用户本机的ip啊?
    上面的两个都不是的 
      

  2.   

    web端估计要写activex插件了吧 。即使你能获取到.如果访问者使用代理或者多层代理 。你也无法获取用户真实IP
      

  3.   


    难怪了 之前老系统cs结构的就可以获取的,web端为什么就不行啊? 那怎么写activex 插件呢??
      

  4.   

    应该是被路由了
    ip是Request发过来的,发什么过来就只能读什么你把判断取消,看看servervariables里面那个是或者像
      

  5.   


    难怪了 之前老系统cs结构的就可以获取的,web端为什么就不行啊? 那怎么写activex 插件呢??
    你看下老系统是怎么获取的,照他做一遍
      

  6.   


    难怪了 之前老系统cs结构的就可以获取的,web端为什么就不行啊? 那怎么写activex 插件呢??
    activex 多数用户都是禁用的 。 写了没有多大用.换其他方式吧。 cookie 或者其他