如何获取使用我的网络服务的网站的网址?

时间:2009-04-14 13:18:21

标签: asp.net web-services

我开发了一个Web服务并将其托管在我的服务器上,我想知道谁在使用这个Web服务(站点Url)。我试着使用“Request.UrlReferrer”,但它没有返回任何东西!任何建议/意见?

4 个答案:

答案 0 :(得分:3)

您无法获取Web服务调用者的URL,因为并非所有调用者都具有规范URL。但是,您可以获取IP地址,假设它们不在代理/ nat之后。在这种情况下,您将获得nat / proxy的IP。

假设您使用ASMX网络服务,可以通过以下方式进行:

HttpContext.Current.Request.UserHostAddress

获得IP地址后,您可以尝试进行反向查找以获取主机名。我建议存储IP地址,然后写一个离线进程,然后尝试确定谁拥有IP。我确信有一些网络服务可以帮助解决这个问题。

答案 1 :(得分:0)

您可以使用Request.Url属性获取有关Web服务请求的所有信息。

答案 2 :(得分:0)

引荐来源由客户端设置,客户端可以设置它。这就是你什么也看不见的原因。如果客户端是服务器,那么您可以做的最好的事情是获取客户端连接的IP并转到该IP。如果是一个没有虚拟主机的简单设置,那就是“网站”即将到达您的网络服务。

答案 3 :(得分:0)

作为Josh statesHttpRequest对象是可行的方法,那里有一些可能有用的属性:

  1. UserHostName - 获取远程客户端的DNS名称。
  2. UserAgent - 获取客户端浏览器的原始用户代理字符串。
  3. UserHostAddress - 获取远程客户端的IP主机地址。
  4. 这可能会为您提供更多信息。