检查用户是否使用 Tor 请求网站的现代方法是什么? (php)

2023-12-07

我尝试了很多方法,但所有方法都不适合我,我想它们已经过时了,事情已经改变了。也许有人可以告诉我挖掘的方向?


我是一个名为的 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 TorDNSELscript 不需要任何其他类,可以作为独立脚本下载和使用。它发出 DNS 请求,但直接构建它,因此您也不需要 PHP 可用的任何 DNS 函数或库。

或者,我使用ControlClient类来维护非常新鲜的退出列表。您可以使用它构建自己的列表(您需要自己的 Tor 中继来连接,或者也可以使用目录权限来构建列表)。更简单,只需定期下载并检查我导出的退出列表here。该列表每 10 分钟更新一次,因此请尽量不要每 10 分钟左右下载一次以上。

然后将其保存到您站点的某个位置,并根据列表中的 IP 地址检查客户端 IP。

您可以从 GitHub 下载源代码或composer require dapphp/torutils安装到现有项目。

希望有帮助,如果我可以进一步回答,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查用户是否使用 Tor 请求网站的现代方法是什么? (php) 的相关文章

  • 选择MySql表数据放入数组中

    我尝试从 mysql 捕获数据并将它们全部放入数组中 认为 users table id name code 1 gorge 2132 2 flix ksd02 3 jasmen skaod2 sql mysql query select
  • php 打印 aa aaa ab aab 直到 zzz 的算法

    你好 我需要打印从 a 到 zzz 最多 3 个字母 例如我的输出应该是 A B Z AA AB AZ BA BB ZZ AAA AAB ZZZ 我在过去的 5 个小时里努力尝试 我找不到任何逻辑 我尝试了下面的代码 PHP 有一个方便的功
  • 使用 strtotime() 计算时间差(以小时和分钟为单位)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions time1
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • 使用 PDO 准备语句使用搜索字段中的多个关键字进行 LIKE 查询

    网站用户使用搜索表单来查询产品数据库 输入的关键字在数据库中搜索产品的标题 public function startSearch keywords keywords preg split s keywords totalKeywords
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • Javascript 函数与 php 一样吗?

    我在网站上使用 WebIM 提供聊天支持 我希望能够在客户端启动聊天会话时设置一个计时器 如果操作员 技术人员在 x 秒内没有响应 我希望页面重定向到客户端可以留言的另一个页面 有点像 请稍等 我们尝试联系您 这样 如果所有技术人员都太忙或
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • 通过 AJAX 发送 XML

    我在 jQuery 中创建了一个 xml 文档 如下所示 var xmlDocument
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • Opencart最低下单价不包括一类

    我正在使用 opencart 并成功为所有交易添加了最低订单价格 这是我使用的代码 div div div class warning Minimum 10 Euro to checkout div 现在我想从中排除一个类别 以便可以购买该
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • 如何将 yii2 Restful api 中两个表的关系数据显示为 json 格式

    我遇到了将两个表中的数据显示为 JSON 格式并在 yii2 Restful api 上工作的问题 这是我的结构数据库 TABLE volunteer volunteer id int 11 NOT NULL auto increment
  • Yii 查询时对相关模型的限制

    我遇到了极限问题 我正在使用的代码如下 model PostCategory model record model gt with array posts gt array order gt posts createTime DESC li
  • Laravel - 覆盖模型 ID

    我正在开发电子书管理系统 我使用 UUID 而不是自动递增整数主键 它工作得很好 protected static function boot parent boot static creating function model model
  • 如何使用 PHP 从 MySQL 检索特定值?

    好吧 我已经厌倦了 过去一周我花了大部分空闲时间试图解决这个问题 我知道 SQL 中的查询已更改 但我无法弄清楚 我能找到的所有其他帖子似乎都已经过时了 如果有人能帮助我 我将非常感激 我想做的就是使用手动输入数据库的唯一 密码 来检索行的
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth

随机推荐

  • 选择日期后,显示错误的月份[重复]

    这个问题在这里已经有答案了 我正在使用日期选择器 但每当我选择任何日期时 它都会显示 1 个月 例如 如果我选择 12 12 2016 它将显示在文本框中 12 11 2016 如果我选择 3 1 2017 它将显示 3 0 2017 这是
  • 我无法在任何地方访问我的数组对象,如何快速访问它们?

    如何在另一个函数中访问我的数组对象 即来自 arr 和电子邮件的数组对象 到目前为止 当我调用 auth auth 函数时 我只能访问 else 语句内的数组对象 我想知道如何才能做到这一点 let store CNContactStore
  • HttpListener - 如何将 WebException HTTP 304“未修改”错误发送回浏览器?

    如果我使用 HttpListener 如何将 WebException 304 错误模拟回浏览器 也就是说 我收到了对 HttpListener 的请求 然后获得了 HttpListenerContext 那么从现在开始 我将如何模仿 安排
  • 与 JPA 的数据库独立字符串比较

    我正在使用 JPA Hibernate 作为提供者 和底层 MySQL 数据库 我有一张表 其中包含德国所有街道的名称 每个街道名称都有一个唯一的编号 对于一项任务 我必须找出姓名的编号 为此 我编写了一个 JPQL 查询 如下所示 SEL
  • 使用 R 绘图在 R 中绘制点图

    生成具有这样两个因素的点图的最佳方法是什么 最好使用标准 R 图 而不是 ggplot 并从 2x2 数据框生成 水平线应该是手段 我尝试过克利夫兰点图 但无法弄清楚如何获取两个数据系列并让点抖动 下面的代码应该可以解决这个问题 set s
  • 为 Firebase 云消息传递 PHP 生成 OAUTH 令牌

    我有一个 PHP 页面 我用它来向我开发的移动应用程序的用户发送通知 该页面直到上个月都工作正常 然后它给了我这个错误 multicast id 5174063503598899354 成功 0 失败 1 canonical ids 0 结
  • Kivy:已弃用功能的替代方案

    我正在尝试适应这个code但我仍然是第一步 因为我不理解大多数称为 like like 的功能可选数据项 Adapter 列表适配器 or 可选视图 当我在 kivy 网站上查找它们时 我发现它们被列为已弃用 我在 Kivy 网站上找不到这
  • 如何为每个商店对象提供自己的库存数组列表?

    发现这个很难 基本上我有三个类 Store 类 Stock 类 然后是 GUI 类 创建商店时 我希望它有自己的 arrayList 以便我可以向其中添加多个库存对象 通过 GUI 完成 我尝试只包含所需的基本代码 已删除 getter 方
  • 如何对元组数组进行排序?

    如何实现 或创建 元组列表的数组排序 以下内容是从我的代码中收集到的 本质上我创建了一个元组数组 并通过 for 循环填充它 之后我尝试对其进行排序 var myStringArray String Int nil myStringArra
  • 内置 python 函数的时间/空间复杂度

    split strip open 内置 python 函数 的时间 空间复杂度是多少 有谁知道我可以在哪里查找这些函数的时间 空间复杂度 确切的答案将取决于输入到函数中的属性 最简单的找出方法可能是检查这些函数的源代码 python 源代码
  • 如何使用 ffmpeg 在大型复杂过滤器上 concat 之前应用 1:1 SAR

    我使用 ffmpeg 以类似于以下的方式连接视频 我的输入遇到了一个奇怪的错误 Parsed concat 0 000000002a05bb80 Input link in10 v0 parameters size 1280x720 SAR
  • 如何在 Python 中使用 K-Means 聚类找到最佳聚类数

    我是聚类算法的新手 我有一个电影数据集 包含 200 多部电影和 100 多个用户 所有用户都至少评价了一部电影 值 1 表示好 0 表示坏 如果注释者别无选择 则值为空白 我想根据相似的用户的评论对他们进行聚类 这样的想法是 将相似电影评
  • 如何将客户端属性添加到 FirebaseListObservable 中的项目?

    我正在构建一个由 Firebase 数据库结构支持的简单聊天应用程序 messages KTjL oLrKOboa2su2zk name puf text Look I m smiling KTjNfaNem752ChFBcnC name
  • 如何动态更改log4j日志文件?

    我想要一个 log4j 配置 使得日志文件名应类似于 System name log log 也就是说 如果应用程序在任何系统上启动 则无需更改配置文件或代码 它应该生成如上所述的日志文件名 谢谢 我这样做 1 通过以下方式初始化记录器 S
  • 如何在页面加载时使用 ajax 将 php include 加载到页面中

    我有一个 php include 需要一段时间才能加载 因为 PHP 必须获取大量数据 我不想减慢整个网页加载等待此包含的速度 那么如何使用 ajax 加载此包含 我不希望通过单击按钮来触发ajax 我只是希望它在页面加载时加载包含内容 这
  • 图像在旋转时会改变大小。我该如何阻止这个?

    我正在为 Android 制作游戏 我需要旋转图像 当我旋转它时 它的尺寸显然会发生变化 例如 当它旋转 45 度时 它是正方形 但我希望它适用于任何矩形 因此它是一个更通用的解决方案 它的宽度和高度变成对角线的长度 比原来的长 经过一些代
  • 如何使用MacWire(播放框架)将依赖项注入到服务中

    我有一个服务类 该服务有一种方法getSomethingFromApi 现在 我想要有 play 配置实例 以便我可以从 application conf 中提取内容 并有一个 play WSClient 以便我可以执行 http 调用 这
  • 在Python中组合with语句和for循环

    考虑以下 python 代码 它使用上下文管理器来获取和释放资源 from contextlib import contextmanager contextmanager def res i print f Opening resource
  • Git 无法在 Linux 上使用 LF 检出使用 CRLF 存储的文件

    我正在检查第三方项目 libjpeg https github com winlibs libjpeg在Linux上 这只是一个例子 实际上我在许多其他项目中也遇到了同样的问题 我有以下 Git 行结尾配置 我只配置了全局设置 设置为以 L
  • 检查用户是否使用 Tor 请求网站的现代方法是什么? (php)

    我尝试了很多方法 但所有方法都不适合我 我想它们已经过时了 事情已经改变了 也许有人可以告诉我挖掘的方向 我是一个名为的 PHP 库的作者TorUtils它提供了许多与 Tor 和中继相关的类 One of the classes it p