4

我有一些由一些客户调用的网络服务,包括通过移动和网络。我无法控制客户端代码。但是,我需要通过 IP 地址或其他方式确定谁在调用我的 Web 服务。有什么方法可以识别吗?

4

2 回答 2

5

跟踪这类事情的更好方法是引入 API 密钥的概念。这样您就可以确切地知道谁在使用您的服务,并且可以跟踪他们的使用情况等。

在每次调用您的服务时,用户都必须提供他们的密钥作为授权手段(而不是身份验证)。这种方法通常可以帮助避免滥用 API,但是,它不能完全根除它。至少使用这种方法,如果您确实发现恶意用户,它就像禁用该特定 API 密钥一样简单。

于 2013-08-02T08:21:45.080 回答
1

您应该检查您的IIS 日志,这些将列出(如果您打开它们,默认它们是打开的)对您的服务器发出的所有请求。

因此,在日志中搜索服务的 URL,并在您遇到问题的请求时检查日志,它会列出 IP 地址。

您的日志通常可以在以下位置找到:C:\inetpub\logs\LogFiles

如果文件夹是空的,那么你现在运气不好,你需要在 IIS 中打开登录,然后你将能够在几个小时后检查它们并开始查看请求的来源。


例如,来自日志的样本。

2012-10-29 04:49:44 129.35.250.132 GET /favicon.ico/sign-in returnUrl=%252ffavicon.ico 82 - 27.xxx Mozilla/5.0+(Windows+NT+6.1;+rv:16.0)+壁虎/20100101+火狐/16.0 200 0 0 514


所以第一个突出显示的项目是日期和时间,第二个突出显示的项目是 IP 地址(已编辑,因为它是真实的日志。)

于 2013-08-02T08:36:04.007 回答