找出给定IPv4 / IPv6地址的域(不是rDNS / PTR)

时间:2014-12-04 15:54:37

标签: android linux dns language-agnostic

是否可以获取解析为给定IPv4 / IPv6地址的域名?

我猜测查询系统DNS缓存必须有办法,但我还没有找到合适的解决方案。

另外,我对rDNS / PTR不感兴趣,这很容易获得,但在最近由系统解析的域名中,指向给定的IP地址。

我的主要兴趣是Android操作系统,但您也可以为其他平台提供解决方案。

2 个答案:

答案 0 :(得分:2)

Android中没有操作系统级别的DNS缓存,请参阅

https://android.stackexchange.com/questions/18002/is-there-a-way-to-list-the-local-dns-cache

编辑:它显然取决于Android版本。当前版本使用Bionic DNS缓存,请参阅

http://osxr.org/android/source/bionic/libc/netbsd/resolv/res_cache.c

您可以使用__get_res_cache访问缓存。这是一个内存中的每进程缓存。

如果您有权访问配置的递归解析程序,则可以尝试访问其缓存(例如,通过登录它,或通过安装服务以允许远程访问缓存)。

答案 1 :(得分:1)

没有一般方法可以满足您的要求。可能有一些方法可以深入了解您正在使用的任何DNS解析系统的内部结构,以查看最终发生在其缓存(或类似)中的情况,但这将高度依赖于系统。我所知道的系统都没有将其作为支持的功能。有些东西有帮助(例如,BIND有rndc dumpdb将当前缓存转储到文件中。无论如何,您必须参考系统的文档。

根据您的需要,最不好的选择可能是窥探路过的A和AAAA记录的相关网络接口。