我尝试了很多方法,但所有方法都不适合我,我想它们已经过时了,事情已经改变了。也许有人可以告诉我挖掘的方向?
我是一个名为的 PHP 库的作者TorUtils它提供了许多与 Tor 和中继相关的类。
One of the classes it provides is TorDNSEL example which gives you a simple interface to query the Tor DNS exit list to see if the remote IP is a Tor relay accessing your site.
使用方法很简单(示例更新于2022/02/04):
<?php
use Dapphp\TorUtils\TorDNSEL;
require_once 'src/TorDNSEL.php';
// Practical usage on a web server:
try {
if (TorDNSEL::isTor($_SERVER['SERVER_ADDR'])) {
// do something special for Tor users
} else {
// not using Tor, educate them! :-D
}
} catch (\Exception $ex) {
error_log("Tor DNSEL query failed: " . $ex->getMessage());
}
The TorDNSEL
script 不需要任何其他类,可以作为独立脚本下载和使用。它发出 DNS 请求,但直接构建它,因此您也不需要 PHP 可用的任何 DNS 函数或库。
或者,我使用ControlClient
类来维护非常新鲜的退出列表。您可以使用它构建自己的列表(您需要自己的 Tor 中继来连接,或者也可以使用目录权限来构建列表)。更简单,只需定期下载并检查我导出的退出列表here。该列表每 10 分钟更新一次,因此请尽量不要每 10 分钟左右下载一次以上。
然后将其保存到您站点的某个位置,并根据列表中的 IP 地址检查客户端 IP。
您可以从 GitHub 下载源代码或composer require dapphp/torutils
安装到现有项目。
希望有帮助,如果我可以进一步回答,请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)