我一直试图解决这个问题,但在向所有服务器的asp.net页面发出请求时找不到可靠的方法来获取客户端IP地址。
答案 0 :(得分:32)
一种方法是使用Request对象:
protected void Page_Load(object sender, EventArgs e)
{
lbl1.Text = Request.UserHostAddress;
}
答案 1 :(得分:7)
IpAddress=HttpContext.Current.Request.UserHostAddress;
答案 2 :(得分:5)
Request.ServerVariables["REMOTE_ADDR"]
要访问C#上的索引或属性,您应该使用[]而不是()
答案 3 :(得分:0)
使用此代码:
public static string GetIpAddress()
{
return HttpContext.Current != null ? HttpContext.Current.Request.UserHostAddress : "";
}
答案 4 :(得分:0)
尝试以下代码:
var IpAddress = Request.Headers["Referer"][0];
答案 5 :(得分:0)
如果客户端和服务器之间有代理。可以使用 HTTP_X_FORWARDED_FOR 标头。
var ips = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
var clientIp = "";
if (!string.IsNullOrEmpty(ips))
{
string[] addresses = ips.Split(',');
if (addresses.Length != 0)
{
clientIp = addresses[0];
}
}
else
{
clientIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
答案 6 :(得分:-1)
System.Web.HttpContext.Current.Request.UserHostAddress;