2009-11-27 140 views

回答

1

如果你在Linux或Unix的平台,尝试寻找在man -k resolver,并寻找resolver男人页面或功能的页面一样res_initres_search等。人。这些是DNS的unix API,看起来像,虽然没有直接的方法来做你想做的事,但可以通过组合功能和它们返回的信息来收集信息,并且执行一些其他的数据按摩。

关于wireshark知道发生了什么,它并不真正知道。它只是在数据包来回传输时进行监控并打印出它所看到的内容。解析器是知道的,这就是我所建议的API。

+0

是的,我检查了nslookup的源代码,并注意到他们正在使用解析器对象的_res。 – systemsfault 2009-11-28 09:31:49

0

我不认为你可以找到它使用的,但它使用一个从/etc/resolv.conf中

+0

但nslookup可以找到,至少我可以看到哪些dns服务器,它从wireshark查询,但我想找到它与编码。其实我只是为了好玩和学习的目的而尝试。 – systemsfault 2009-11-27 18:00:08

0

如果你是在Linux上,你可以看看,从源头上“挖”。基于它能够打印出服务器地址,我认为除了解析/etc/resolv.conf之外,还必须有一些手段来做到这一点。

在Windows上,有一个非常复杂的API用于此目的。

+0

是的,我知道挖和nslookup做同样的事情(可能我会检查他们的来源)/etc/resolv.conf包含我家的路由器的地址的地址,这是在一个DHCP配置通常。可能 – systemsfault 2009-11-27 17:58:36