日期:2014-05-17  浏览次数:20401 次

关于获取ip地址问题。
获取当前用户本机的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。

------解决方案--------------------
web端估计要写activex插件了吧 。

即使你能获取到.如果访问者使用代理或者多层代理 。你也无法获取用户真实IP
------解决方案--------------------
应该是被路由了
ip是Request发过来的,发什么过来就只能读什么

你把判断取消,看看servervariables里面那个是或者像
------解决方案--------------------
引用:
Quote: 引用:

web端估计要写activex插件了吧 。

即使你能获取到.如果访问者使用代理或者多层代理 。你也无法获取用户真实IP


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

你看下老系统是怎么获取的,照他做一遍