获取客户端ip

private string GetIp()
        {
            string ip = "";
            if (Context.Request.ServerVariables["HTTP_VIA"] != null)// 服务器, using proxy
            {
                ip = Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
            }
            if (ip == "" || ip == null)//如果没有使用代理服务器或者得不到客户端的ip  not using proxy or can't get the Client IP
            {                            //得到服务端的地址    

                ip = Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.


                if (ip == "" || ip == null)//如果没有使用代理服务器或者得不到客户端的ip  not using proxy or can't get the Client IP
                {
                    string strHostName = System.Net.Dns.GetHostName();

                    string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
                }

                if (ip == "" || ip == null)
                {
                    ip = HttpContext.Current.Request.UserHostAddress;
                }

            }
            return ip;
        }

posted @ 2015-09-28 17:07  caijinhao  阅读(169)  评论(0编辑  收藏  举报