我知道 Web 服务器无法检测传入请求的 DNS IP,因为该数据未存储在任何数据包选项中。Web 服务器只能看到原始 TCP http 数据。所以我的问题是 - 如何集成健康检查工具,让用户知道他配置的是我的 DNS 服务器,而不是他的 ISP DNS。
我使用唯一的 healcheck URL 运行自己的 DNS(即 check.example.com)
如果使用我的 DNS 进行查询,则此 URL 将响应 1.1.1.1;如果使用任何外部 DNS 进行查询,则响应 127.0.0.1。
鉴于此优势,是否有任何类型的 PHP 脚本可用于强制客户浏览器使用客户端环境执行 DNS 查询,然后根据响应调用状态消息(成功或失败)?
答案1
PHP 是服务器端的,因此您无法使用 PHP 让浏览器执行任何操作。您可能可以使用 Javascript 来做到这一点,但我从未遇到过从网页发送 DNS 查询的任何方法。
对我来说,最明显的解决方案是从网页向仅在使用 DNS 时解析的 URL 发送 AJAX Web 请求。如果请求成功,则您知道用户正在使用您的 DNS 服务器。如果没有,它将超时。