windows - 如何从 Windows 查询 TXT 和 SRV 记录?

标签 windows networking dns nslookup dns-sd

我正在尝试使用裸主机名(例如 _service._proto)查询一组 SRV 记录,但是这会失败,除非我还包括域名。这很奇怪,因为 nslookup 等其他工具可以正常工作,并且使用相同的 API 调用来查询 A 记录也可以在裸主机名下正常工作。

dsRet = DnsQuery("_service._udp",DNS_TYPE_SRV,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==DNS_ERROR_RCODE_NAME_ERROR
dsRet = DnsQuery("_service._udp",DNS_TYPE_TEXT,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==DNS_ERROR_RCODE_NAME_ERROR
dsRet = DnsQuery("_service._udp.example.com",DNS_TYPE_SRV,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==ERROR_SUCCESS
dsRet = DnsQuery("_service._udp.example.com",DNS_TYPE_TEXT,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==ERROR_SUCCESS
dsRet = DnsQuery("collector",DNS_TYPE_A,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL); //==ERROR_SUCCESS

我当然可以查询系统以获取主域名,甚至可能是所有配置的搜索域,但我很确定我不应该这样做。我几乎找不到对 Windows DNS API 的引用,所以我想知道是否有更好的方法来查询 TXT 和 SRV 记录。有没有人在 Windows 下有这方面的经验?

感谢您的任何建议, 罗伯特

最佳答案

它在 nslookup 下工作的原因是 Windows 正在使用配置的域后缀执行所有搜索。要查看实际效果,请启动 nslookup,然后发出“set debug”命令。现在执行您的搜索,您将看到您的机器发送和接收的请求和响应。在附加和匹配配置的域后缀之一之前,“裸主机名”将有一个未回答的。

希望这对您有所帮助。

乔纳森

这是一个免费的 DNS 客户端库,您可以使用它来针对不同类型的查询查询 DNS:http://www.simpledns.com/dns-client-lib.aspx还有http://arsofttoolsnet.codeplex.com

关于windows - 如何从 Windows 查询 TXT 和 SRV 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111264/

相关文章:

java - 域名不指向安装Java Web应用程序并行plesk,删除端口号

macos - Mac OSX Lion DNS 查找顺序

c# - 当互联网连接或断开连接时收到通知

C++ 删除管理员权限

linux - 具有OPNsense作为防火墙/GW的Proxmox-路由问题

docker - 将 Docker 容器连接到本地主机的最简单方法

c# - 由于缓存,Sqlite 第一次查询在 Windows XP 中花费的时间太长?

windows - 用户下载时如何避免安装程序出现 Windows Defender SmartScreen?

c++ - 在网络应用程序中缓冲数据的 OOP 方法

c# - dns.gethostbyname()