我开发了我们的应用程序,可以通过func成功获取hotsname:ServiceFound(DNSSDService sref, DNSSDFlags flags, uint ifIndex, String serviceName, String regType, String domain)
我检查了wireshark和Log,serviceName是对的。
我的问题:为什么我不能通过“serviceName.domain”ping 它,例如:ping serviceName.local。(我想在运行我的应用程序之前使用 ping 测试可用的网络。现在它被阻止了失败的 ping)但是我可以通过真实 IP ping 它,例如:ping 1.2.3.4(这意味着网络正常)
ServiceFound 和 ServiceResolved 只提供 serviceName。
那么如何解决这个问题:1)获取IP的一种简单方法或2)如何解决“ping serviceName.local”的问题
非常感谢您的提前支持!
** * ** * ** * ** * ** * ** * ** * ***更新* ** * ** * 我在其他 PC 上重新测试:
我使用 dns-sd.exe 调试网络
使用以下命令可以获得服务名
$ dns-sd.exe -B _http._tcp
如果域服务类型实例名称 4:33:52.663 添加 3 3 本地,则浏览 _http._tcp 时间戳 A/R 标志。_http._tcp。测试
使用以下命令可以获得区域文件
$ dns-sd.exe -Z _http._tcp
正在浏览 _http._tcp _http._tcp PTR Officejet\032Pro\032L7500\032[FEDCE8]._http._tcp Officejet\032Pro\032L7500\032[FEDCE8]._http._tcp SRV 0 0 80 HPFEDCE8.local。; 替换为目标主机 Officejet\032Pro\032L7500\032[FEDCE8]._http._tcp TXT "" 的单播 FQDN
使用以下命令可以获得IP(基于HPFEDCE8.local。在上面的反馈中)
$ dns-sd.exe -G v4 HPFEDCE8.local。
如果主机名地址 TTL 4:43:38.965 添加 2 3 bej1301Dell2360.local,则时间戳 A/R 标志。10.61.20.99 240
所以我可以通过 HPFEDCE8.local ping 通它。
但是在我的测试电脑中:“$ dns-sd.exe -B _http._tcp”是可以的,但是其他命令都失败了。
所以我认为这是根本原因。所以我的问题是:据我所知,我们可以使用“实例名称”来生成主机名:test.local。为什么它们与“HPFEDCE8.local”不同。在区域文件中
为什么“ping HPFEDCE8.local”。好的,“ping test.local”。失败的
您对我的测试 PC 有其他想法吗?
非常感谢!!