【发布时间】:2009-04-14 13:18:21
【问题描述】:
我开发了一个网络服务并将其托管在我的服务器上,我想知道谁在使用这个网络服务(网站 URL)。我尝试使用“Request.UrlReferrer”,但它没有返回任何东西!有什么建议/建议吗?
【问题讨论】:
-
糟糕!行。知道了。我猜你必须使用 IP,然后使用反向 DNS 查找。
标签: asp.net web-services
我开发了一个网络服务并将其托管在我的服务器上,我想知道谁在使用这个网络服务(网站 URL)。我尝试使用“Request.UrlReferrer”,但它没有返回任何东西!有什么建议/建议吗?
【问题讨论】:
标签: asp.net web-services
您无法获取 Web 服务调用者的 URL,因为并非所有调用者都有规范的 URL。但是,您可以假设 IP 地址不在代理/nat 后面。在这种情况下,您将获得 nat / 代理的 IP。
假设您使用的是 ASMX Web 服务,您可以通过以下方式:
HttpContext.Current.Request.UserHostAddress
获得 IP 地址后,您可以尝试进行反向查找以获取主机名。我建议存储 IP 地址,然后编写一个离线进程,尝试确定谁拥有该 IP。我确信有一些网络服务可以帮助解决这个问题。
【讨论】:
您可以使用 Request.Url 属性来获取有关对您的 Web 服务的请求的所有信息。
【讨论】:
referrer是客户端设置的,客户端可以不设置。这就是为什么你什么也看不见。如果客户端是服务器,那么您能做的最好的事情就是获取客户端连接的 IP 并转到该 IP。如果是一个简单的设置,没有虚拟主机,那么这就是 “网站” 正在访问您的 Web 服务。
【讨论】:
作为Josh states,HttpRequest 对象是要走的路,那里有一些属性可能会有所帮助:
这可能会为您提供更多信息。
【讨论】: