Browser 在浏览器地址栏中解析mDNS.local URL

Browser 在浏览器地址栏中解析mDNS.local URL,browser,dns,server,jmdns,mdns,Browser,Dns,Server,Jmdns,Mdns,我正在尝试在局域网中运行HTTP服务器,并希望使用另一台桌面计算机上的浏览器访问它。由于我不喜欢手动键入IP地址和端口,我尝试使用jmDNS设置MDN String type = "_http._tcp.local."; jmdns = JmDNS.create(); jmdns.addServiceListener(type, listener = new ServiceListener() { @Override

我正在尝试在局域网中运行HTTP服务器,并希望使用另一台桌面计算机上的浏览器访问它。由于我不喜欢手动键入IP地址和端口,我尝试使用jmDNS设置MDN

        String type = "_http._tcp.local.";
        jmdns = JmDNS.create();
        jmdns.addServiceListener(type, listener = new ServiceListener() {
            @Override
            public void serviceResolved(ServiceEvent ev) {
                Log.d(LogTag.SERVER, "Service resolved: " + ev.getInfo().getQualifiedName() + " port:"
                        + ev.getInfo().getPort());
            }

            @Override
            public void serviceRemoved(ServiceEvent ev) {
                Log.d(LogTag.SERVER, "Service removed: " + ev.getName());
            }

            @Override
            public void serviceAdded(ServiceEvent event) {
                // Required to force serviceResolved to be called again (after the first search)
                jmdns.requestServiceInfo(event.getType(), event.getName(), 1);
            }
        });
        serviceInfo = ServiceInfo.create(type, NAME, PORT, "test service");
        jmdns.registerService(serviceInfo);
mDNS条目在ZeroConf浏览器应用程序上显示得很好。服务器可以通过IP和端口访问,一切正常

在Windows 7上,在任何地址栏(Firefox、Chrome、Safari、IE)中键入带有.local TLD(=)的名称都没有多大作用,从我的研究结果来看,这几乎是一项徒劳的任务。我安装了Apple Bonjour,但这只能帮助运行爱好者软件的Bonjour浏览器。 就Linux而言,我在elemantaryOS和Midori上也尝试了同样的方法,但也没有成功。 OSX或iOS目前对我不可用

如何获得.local地址的分辨率以在我的浏览器(Firefox、Chrome,Linux、OSX或Windows7上的任何浏览器)中工作?我做错什么了吗?在这一点上,我只想验证MDN在系统上可以像这样工作


关于这个问题的材料的指针也很受欢迎。

MDN和Bonjour可能会有点混淆,因为它们实际上包含一些不同的功能。我相信您已经实现的服务发现就是其中之一。解析一个地址——您正在寻找的地址——是独立的,需要单独解决。一旦地址解析开始工作,您就可以将服务发现指向解析程序提供的DNS记录

mDNS地址解析通过在网络上多播DNS查询来工作。通过绑定到UDP端口、侦听查询并回答查询,您可以向mDNS客户端提供DNS记录。要做到这一点,您可以使用现有的mDNS服务器,如avahi守护进程,或者,如果您需要自定义功能或与应用程序集成,请使用Node.js之类的工具实现一个


然而,根据我的经验,这是相当脆弱的。有些网络配置会影响mDNS的分辨率,有些操作系统也会影响mDNS的分辨率(例如,iOS 8,请参阅有关DiscoveryYD与mDNSResponder的整个辩论)。

您是否找到了解决方案?遗憾的是,没有,无法使其正常工作,并转到其他方面。只是做了一个快速的谷歌搜索,也许:有帮助。我想我确实找到了答案。我会补充一个答案,以防有人来看。