C#获取客户端IP地址的三种方法
C#获取客户端IP地址通常有三种方法,第一种用 HTTP_X_FORWARDED_FOR,第二种用 REMOTE_ADDR,第三种用 UserHostAddress;三种方法都要用 Request。
有些时候,用某种方法可能无法获取到 IP,所以最好三种方法同时用,当然需要加 if 判断。接下来先介绍每种方法,再把三种方法封装成一个可供调用的方法。
一、用 HTTP_X_FORWARDED_FOR 获取客户端IP地址
///<summary>
///C# 获取客户端IP地址<
///</summary>
///<returns>IP地址</returns>
public string GetClientIPAddr()
{
return Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
二、用 REMOTE_ADDR 获取IP
///<summary>
///C# 获取IP地址
///</summary>
///<returns>IP地址</returns>
public string GetClientIPAddr()
{
return Request.ServerVariables["REMOTE_ADDR"];
}
三、用 UserHostAddress 获取IP
///<summary>
///C# 获取IP地址
///</summary>
///<returns>IP地址</returns>
public string GetClientIPAddr()
{
return Request.UserHostAddress;
}
四、三种方法并用获取IP(可直接调用)
///<summary>
///获取客户端IP地址
///</summary>
///<returns>IP地址</returns>
public string GetClientIPAddr()
{
string ipAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ipAddr))
ipAddr = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (string.IsNullOrEmpty(ipAddr))
ipAddr = HttpContext.Current.Request.UserHostAddress;
return ipAddr;
}
以上获取IP地址的方法,在实际应用中通过测试,能准确获取到客户端IP地址;如果要使用,直接用第四种并用方法即可。
-
相关阅读