无法获取http请求的Ip地址:Asp.Net[C#]

本文关键字:Asp Net 地址 Ip 获取 http 请求 | 更新日期: 2023-09-27 18:12:32

我有一个页面,上面会有来自其他网站的请求。我想跟踪请求的IP地址。

我使用的是Asp.Net C#;使用了三种方法

1) httpRequest.UserHostAddress

尝试将Http服务器变量作为

2) httpRequest.ServerVariables ["HTTP_X_FORWARDED_FOR"];
3) httpRequest.ServerVariables ["REMOTE_ADDR"];

但是这些方法正在返回我的服务器地址。因为浏览器正在接受这个请求,因为它是在我的一端发起的。但我想得到请求来自的页面(网站(的ip地址。有人能帮我吗。

无法获取http请求的Ip地址:Asp.Net[C#]

也许您正在查找Url Referrer属性。

尝试

Request.UrlReferrer

Request.ServerVariables["http_referer"]

通过此操作,您可以获得请求来源的Url。

private IPAddress[] PossibleReferringIPs
{
  get
  {
    Uri refer = Request.UrlReferrer;
    if(refer == null)
      return null;
    string host = refer.Host;
    IPAddress hostAsIP;
    if(IPAddress.TryParse(host, out hostAsIP))// had actual IP address as host part of URI
      return new IPAddress[]{hostAsIP};
    return Dns.GetHostAddresses(host);//This can throw SocketException which you may wish to catch at this point.
  }
}

我们不能保证已经设置了引用人,即使有引用人,如果有多个IP地址分配给域,我们也无法知道是哪个IP地址为页面提供了服务,因为该服务器和您的服务器之间没有连接,因此该信息不可用。

你试过吗

httpRequest.UrlReferrer.Host