如何从访问者获取IP地址(如果在代理服务器后面)

时间:2011-09-07 08:44:06

标签: c# asp.net proxy ip

  

可能重复:
  Client IP using C#

我使用ASP.net和C#,我想知道如何从页面上的访问者那里获取IP地址。

我想看一个检索IP地址的代码示例,并且还能够显示IP是否在代理服务器后面。

感谢您的时间。

2 个答案:

答案 0 :(得分:9)

您可以在Request对象上使用UserHostName属性:

string ip = Request.UserHostName;

就您关于代理的第二个问题而言,没有可靠的方法来实现这一目标。您可以使用启发式方法查找可能由代理服务器发送的某些HTTP请求标头,例如ViaX-Forwarded-For

string header = Request.Headers["Via"] ?? Request.Headers["X-Forwarded-For"];
if (!string.IsNullOrEmpty(header))
{
    // probably the request was forwarded from a proxy server
    // but you cannot be 100% sure as HTTP request headers can be faked
}

答案 1 :(得分:-1)

这么简单的老兄,

string IP = Request.ServerVariables["REMOTE_HOST"].ToString();