我有一些网络服务,由一些客户调用,包括通过移动和网络。我无法控制客户端代码。 但是,我需要通过IP地址或其他方式确定谁正在调用我的Web服务。 有没有办法确定?
答案 0 :(得分:5)
跟踪此类事情的更好方法是引入API密钥的概念。这样您就可以确切地知道谁在使用您的服务,并且您可以跟踪他们的使用情况等。
每次拨打您的服务时,用户都必须提供密钥作为授权方式(不认证)。这种方法通常可以帮助避免滥用API,但是,它无法完全消除它。至少使用这种方法,如果你发现恶意用户,就像禁用特定的API密钥一样简单。
答案 1 :(得分:0)
您应该检查 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)+ Gecko / 20100101 + Firefox / 16.0 200 0 0 514
因此,第一个突出显示的项目是日期和时间,第二个突出显示的项目是IP地址(编辑为真实日志。)