.net 获取客户端Ip
2016-08-02 10:55
253 查看
随着网络的广泛发展,有时候到处要用到获取Ip的方法,下面是一个比较好的获取客户端Ip的方法,希望对您有用。
public static string GetIP()
{
//如果客户端使用了代理服务器,则利用HTTP_X_FORWARDED_FOR找到客户端IP地址
string userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? "";
if (!string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = userHostAddress.Split(',')[0].Trim();
}
//否则直接读取REMOTE_ADDR获取客户端IP地址
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
//前两者均失败,则利用Request.UserHostAddress属性获取IP地址,但此时无法确定该IP是客户端IP还是代理IP
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = HttpContext.Current.Request.UserHostAddress;
}
//最后判断获取是否成功,并检查IP地址的格式(检查其格式非常重要)
if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
{
return userHostAddress;
}
return "127.0.0.1";
}
/// <summary>
/// 检查IP地址格式
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public static bool IsIP(string ip)
{
return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
}
public static string GetIP()
{
//如果客户端使用了代理服务器,则利用HTTP_X_FORWARDED_FOR找到客户端IP地址
string userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? "";
if (!string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = userHostAddress.Split(',')[0].Trim();
}
//否则直接读取REMOTE_ADDR获取客户端IP地址
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
//前两者均失败,则利用Request.UserHostAddress属性获取IP地址,但此时无法确定该IP是客户端IP还是代理IP
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = HttpContext.Current.Request.UserHostAddress;
}
//最后判断获取是否成功,并检查IP地址的格式(检查其格式非常重要)
if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
{
return userHostAddress;
}
return "127.0.0.1";
}
/// <summary>
/// 检查IP地址格式
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public static bool IsIP(string ip)
{
return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
}
相关文章推荐
- 在.NET中获取获取服务器电脑名,获取用户信息,获取客户端电脑名,获取客户端电脑IP收藏。
- .net获取客户端IP
- .net(c#)获取客户端真实IP,非代理
- .net中获取客户端真实ip
- .net各种获取客户端ip方法
- .Net 获取客户端ip
- .net各种获取客户端ip方法
- .net各种获取客户端ip方法
- 利用JS获取IE客户端IP及MAC的实现好象不可以
- .NET中获取电脑名、IP及用户名方法
- .NET中获取电脑名、IP及用户名方法
- 利用JS获取IE客户端IP及MAC的实现
- 利用JS获取IE客户端IP及MAC的实现
- .net获取用户电脑名,IP,当前电脑用户
- ASP.NET获取客户端IP及MAC地址
- 获取.net页面的服务器和客户端2种执行时间
- ASP.NET获取客户端IP及MAC地址(转)
- ASP.NET获取客户端IP及MAC地址
- .NET中获取电脑名、IP及用户名方法
- PHP获取客户端IP的方法