是否可以检测访客DNS服务器?

use*_*989 4 javascript php java dns jquery

检测访客IP很容易.但是如何检测访问者的DNS服务器ips?

我找到了这个PHP函数,但它只找到了域名的DNS.

dns_get_record("website.com", DNS_ANY);
Run Code Online (Sandbox Code Playgroud)

是否可以检测访客DNS服务器?

小智 7

这并不容易,但可以做到.Adam Dobrawy在http://ipleak.net/的单独答案中展示了这种方法.

要添加一些细节,您可以实现这样的方式:

第1部分 - 在myspecialdomain.com上设置您自己的DNS服务器

需要自定义写入此DNS服务器以记录和存储传入请求和源IP地址.这个存储只需要很短的时间,因此像memcache这样的东西可能会很好地工作.DNS响应应该是NXDOMAIN.

第2部分 - 您的客户端代码

在你的Javscript中制作和存储一个大的随机数.使浏览器查找.myspecialdomain.com.通过带有错误处理程序的JS img标记加载它.在该错误处理程序中,现在查询传递随机数的服务器端代码.

第3部分 - 您的Web应用程序(服务器端)

您需要实现一些服务器端逻辑,该逻辑采用随机字符串,在数据存储区中查找,并检索DNS服务器的IP地址.请注意,此处的IP地址将是特定服务器的IP单播地址,它不会是8.8.8.8之类的IP任播地址.在这里,您可以使用GeoIP或Whois数据库来确定该IP地址的所有者(OpenDNS,Google等).然后,您可以生成响应以发送到客户端逻辑.


Ada*_*awy 6

是的,您可以像检测访问者的页面分辨率一样.

您需要自己的DNS服务器并强制用户解析唯一的DNS名称.如果用户试图解决它,那么它们将泄漏到您的DNS服务器自己的DNS服务器地址.DNS服务器旁边必须与您的网络应用程序共享询问唯一DNS名称的信息.


小智 3

DNS 解析不是请求本身的一部分,这意味着请求的接收者无法知道客户端(浏览器)使用了哪个 DNS。