无法获取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地址。有人能帮我吗。
也许您正在查找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