C#如何通过web端获取客户端的IP,就是别人通过web访问你的网站时,服务器可以获得客户机的IP 10

(局域网即可)... (局域网即可) 展开
 我来答
匿名用户
2013-12-03
展开全部
#region 获取web客户端ip
        /// <summary>
        /// 获取web客户端ip
        /// </summary>
        /// <returns></returns>
        public static string GetWebClientIp()
        {
         
                string userIP = "未获取用户IP";

                try
                {
                    if (System.Web.HttpContext.Current == null
                || System.Web.HttpContext.Current.Request == null
                || System.Web.HttpContext.Current.Request.ServerVariables == null)
                        return "";

                    string CustomerIP = "";

                    //CDN加速后取到的IP simone 090805
                    CustomerIP = System.Web.HttpContext.Current.Request.Headers["Cdn-Src-Ip"];
                    if (!string.IsNullOrEmpty(CustomerIP))
                    {
                        return CustomerIP;
                    }

                    CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

                   
                    if (!String.IsNullOrEmpty(CustomerIP))
                        return CustomerIP;

                    if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                    {
                        CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                        if (CustomerIP == null)
                            CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                    }
                    else
                    {
                        CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

                    }

                    if (string.Compare(CustomerIP, "unknown", true) == 0)
                        return System.Web.HttpContext.Current.Request.UserHostAddress;
                    return CustomerIP;
                }
                catch { }

                return userIP;
           
        }
        #endregion
zhcnlei
2013-12-03 · 超过12用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:32.3万
展开全部
/// <summary>
/// 取得客户端真实IP地址
/// </summary>
public static string IPAddress
{
get
{
string result = string.Empty;

result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

if (!string.IsNullOrEmpty(result))
{
//可能有代理
if (result.IndexOf(".") != -1) //没有“.”肯定是非IPv4格式
{
if (result.IndexOf(",") != -1) { return result; }
else if (IsIPAddress(result)) { return result; }//代理即是IP格式
else { result = null; }//代理中的内容 非IP,取IP
}
else { result = null; }
}

if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
}
追问
实际验证过吗,安全否?thankyou
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-03
展开全部
应该可以直接取到地址的。REMOTE_ADDR, REMOTE_HOST。环境变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式