有些浏览器似乎支持查询本地mDNS地址(类型为http://hostname.local/),而其他浏览器则不支持。
看起来iOS在它的网络堆栈本身支持这一点,因此iOS上的所有浏览器都支持.local地址。在Android上,似乎所有DNS查询都会发送到Google的霸主服务器,因此.local地址无法解决。但是,例如Android上的Firefox实现了自己的.local类型地址的DNS查询,因此至少有一些Android浏览器支持.local地址。据我所知,在桌面上,mDNS支持取决于操作系统。 Mac支持开箱即用的mDNS,而如果安装了Bonjour / Avahi,Windows和Linux支持它。
我的网络应用程序作为从本地Intranet上的静态服务器提供的单页面应用程序运行,我需要使用CORS(无代理)直接与网络中的其他服务器通信。为了能够定位和寻址服务器,考虑到DHCP可能没有为它们分配静态IP,我需要知道用户的浏览器是否支持mDNS查询,如果不是,则优先失败。
如果用户的浏览器支持mDNS,我如何在客户端Javascript中进行功能检测?我不介意解决方案是否有点hacky,如果它解决了问题。