4

我需要一个阻止的脚本TOR servers......php我需要获取服务器列表并阻止它们。

或者,安装在服务器(centos)上的任何解决方案。

4

4 回答 4

11

这是有关 TorDNSEL https://www.torproject.org/projects/tordnsel.html.en 以及如何构造查询的更多信息。

下面是我在网上找到的可以执行动态检查的功能。

https://check.torproject.org/必须使用与此类似的内容)。

我不确定在较重的流量下的性能。

function IsTorExitPoint(){
if (gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2") {
return true;
} else {
return false;
} 
}
function ReverseIPOctets($inputip){
$ipoc = explode(".",$inputip);
return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}
于 2012-12-17T11:09:01.430 回答
6

您需要检查用户的 ip 是否在 TOR 出口节点 DNSBL 中。使用静态退出节点列表不是一个好主意,因为节点会不时出现/消失,您可能不想定期更新列表。

存在各种黑名单,EFNET RBL就是其中之一。请注意,它还解决了在某些情况下可能被认为不受欢迎的一些其他 IP - 如果您只希望 TOR 确保忽略这些其他结果。

于 2012-04-24T08:23:09.420 回答
0

如果它需要阻止 TOR 用户 id,请按照以下方法:

ipset -N tor iphash

获取可以访问的 Tor 出口节点列表$YOUR_IP,跳过注释并逐行阅读

wget 

ipset -q -A tor $IP

done

在 itables 过滤器中过滤我们的新集合

iptables -A INPUT -m set --match-set tor src -j DROP.
于 2015-07-18T02:45:18.600 回答
0

这里( https://github.com/RD17/DeTor ) 是一个简单的 REST API,用于确定请求是否来自 TOR 网络。我认为从 PHP 中使用它会非常简单

请求是: curl -X GET http://detor.ambar.cloud/

回应是 { "sourceIp": "104.200.20.46", "destIp": "89.207.89.82", "destPort": "8080", "found": true }

作为奖励,您可以向您的网站添加徽章以检测用户是否来自 TOR:

<img src='http://detor.ambar.cloud/badge' />

于 2017-07-07T07:21:29.280 回答