询问度娘后,综合资料归纳个人开发通用代码块:
#region 获取客户端IP
//获取客户端IP
public string GetClientIP()
{
//string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
//if (userIP == null || userIP == "")
//{
//userIP = Request.ServerVariables["REMOTE_ADDR"];
//}
// return userIP;
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (string.IsNullOrEmpty(result) || !IsIP(result))
{
return "127.0.0.1";
}
return result;
}
//判断是否合法IP
public bool IsIP(string ip)
{
string pattrn = @"(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])";
if (System.Text.RegularExpressions.Regex.IsMatch(ip, pattrn))
{
return true;
}
else
{
return false;
}
}
#endregion