我使用了链接中的以下代码来检测浏览器是否为TOR。
但是当服务器托管在AWS上时,我们没有得到确切的 $ _ SERVER ['SERVER_ADDR'] ,因为AWS正在提供机器或负载均衡器ips的私有ip。
那么有没有办法从TOR出口列表中检测AWS私有ips,以检测用户是否正在使用TOR浏览器。
答案 0 :(得分:2)
首先要使代码正常工作,您必须获得实际的客户端IP。该数据通过x-forwarded-for
标题发送给您的客户:
来自HTTP Headers and Classic Load Balancers:
X-Forwarded-For请求标头可帮助您识别IP地址 使用HTTP或HTTPS负载均衡器时的客户端。因为负载 平衡器拦截客户端和服务器,服务器之间的流量 访问日志仅包含负载均衡器的IP地址。查看 客户端的IP地址,使用X-Forwarded-For请求标头。 Elastic Load Balancing将客户端的IP地址存储在 X-Forwarded-For请求标头并将标头传递给您的服务器。
有关如何检测Tor出口节点的更多信息,请参阅Tor DNS Exit List:
由于各种原因确定连接是否有用 来自Tor节点。早期尝试确定是否给定IP 地址是一个Tor出口使用该目录来匹配IP地址和 退出政策。这种方法有许多缺点,包括 Tor路由器退出来自不同IP的流量时出现漏报 地址比其OR端口监听。基于Tor DNS的退出列表是 旨在克服这些问题并提供简单的界面 回答这个问题:这是一个Tor出口吗?