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