作为我正在开发的应用程序的一部分,我需要能够解析与Bonjour hostname相对应的正确IP.

例如,我给了jack.local并需要将其解析为192.168.1.141,这是与jack相关的IP地址.

我一直在梳理JmDNS API,而且我能找到的最多的方法是,如果知道类型和名称,则允许解析服务.但是,我根本找不到任何可以解析主机名的内容.

我错过了什么吗?是否真的无法使用JmDNS解析主机名?

解决方法

如果需要使用JmDNS从IP地址中找出LAN中的远程主机名,可以使用以下代码.如果需要从主机名映射到IP,则可以解析所有子网IP的主机名以构建缓存.如果您的本机名称解析支持本地Bonjour名称,则可以使用InetAddress.getByName(hostname).getHostAddress().
final JmDNSImpl jmdns = new JmDNSImpl(null,null);
    final HostInfo hostInfo = HostInfo.newHostInfo(InetAddress.getByName("192.168.1.78"),jmdns,null);
    System.out.println("MDNS hostname (Bonjour): " + hostInfo.getName());
    System.out.println("DNS hostname: " + hostInfo.getInetAddress().getHostName());
    System.out.println("IP address: " + hostInfo.getInetAddress().getHostAddress());
    jmdns.close();

如何使用JmDNS解析Bonjour域名的更多相关文章

  1. ios – 错误域= NSURLErrorDomain代码= -1003“找不到具有指定主机名的服务器

    当我尝试在设备上运行应用程序时出现此错误.当我在模拟器上运行它并且post请求正常工作时,我没有收到此错误.这是我的代码片段:任何帮助表示赞赏.谢谢解决方法此错误通常会提示DNS相关问题.检查设备上的DNS设置并确认您可以使用Safari或其他浏览器浏览互联网.如果有一个url,你可以在同一台服务器上获取,尝试直接在设备上的Safari中访问它.

  2. 如何使用JmDNS解析Bonjour域名

    作为我正在开发的应用程序的一部分,我需要能够解析与Bonjourhostname相对应的正确IP.例如,我给了jack.local并需要将其解析为192.168.1.141,这是与jack相关的IP地址.我一直在梳理JmDNSAPI,而且我能找到的最多的方法是,如果知道类型和名称,则允许解析服务.但是,我根本找不到任何可以解析主机名的内容.我错过了什么吗?是否真的无法使用JmDNS解析主机名?

  3. HttpResponse中的主机名可能不为null,对于android

    origin=3雪松大道,新泽西州高地公园08904&destination=604新泽西皮斯卡塔韦巴塞洛缪路604号08854&sensor=false有什么建议么?解决方法我不知道你的URL编码方式是做什么的,但是如果你使用的框架像URLEncoder这样的方法,你绝对不应该传递完整的URL,只需要编码的参数列表来转义特殊字符.对完整的URL进行编码将会将每个字符的百分比转换为://into://和所有其他斜杠转换为/.编码好后,看看你的goodUrl字符串的值.

  4. Windows – ssh:无法解析主机名github.com STATUS_ACCESS_VIOLATION at eip = 68086014

    编辑1:给给我一个减号的人.在你看来,我不应该问.而是,格式化硬盘驱动器.这样会好吗?我在VMwareFusionVM中有这个问题.我不得不将我的网络从NAT改为Bridged,并开始工作.

  5. 如何让CentOS 6 kickstart要求主机名?

    曾经有网络–bootproto=查询CentOS5,但这不再适用于6.我直接在kickstart文件中设置主机名.如果您尝试重复使用相同的模板,您可以获得创造性并使用一些PHP将某些内容传递给安装程序.Kickstart文件是http,所以你可以这样做:…其中kitty是kickstart文件中填充–hostname=参数的变量或者更好的途径是使用更强大的配置框架,如Cobbler.

  6. 在CentOS上设置新的主机名,它会在重新启动后更改

    将以下行添加到/etc/sysctl.conf配置文件中.并执行命令sysctl-p/etc/sysctl.conf以读取和应用/etc/sysctl.conf配置文件的更改.

  7. 如何在CentOS 6.x上的DHCPd(isc-dhcpd-4.1.1-P1)中为多个MAC设置一个主机名和IP?

    我试图在CentOS中获取我的DHCP服务器,以便在同一台计算机上为两个不同的MAC地址提供相同的IP和主机名,具体取决于连接的位置.这是我在dhcpd.conf中的条目我尝试添加第二条硬件线并将第二条MAC添加到第一条硬件线.都没有奏效.有没有人知道如何在DHCPd中使用相同的主机名和IP时完成此任务?你正在打开自己的IP地址冲突,但我相信你有一个非常有效的理由做这样的事情.

  8. centos6 – 如何在ansible中打印主机的当前主机名

    我写了一个角色来在用户登录机器时编辑motd,但我想个性化motd来打印机器的主机名我用什么变量?我使用复制模块作为motd文件因此,例如我希望能够说“欢迎使用$hostname”,那么如何使用ansible解析此主机名?您必须使用template模块.这是一个示例任务:文件motd.j2可能如下所示:然后将{{ansible_hostname}}替换为主机名.请务必在您的角色中使用“gatherfacts”,否则变量将为空.

  9. ubuntu – fstab中的CIFS挂载在IP上成功,在/ etc / hosts中写入的主机名失败

    –是DNS/WINS/其他一些硬编码到mount.cifs的解析方法吗?

  10. 初始化 – 在EC2上使用Ubuntu的ec2-init脚本 – 自动设置主机名并使用Route53注册

    当我启动一个实例时,我真的希望能够使用ec2-init脚本做一些内务处理.理想情况下,我希望能够传递用户数据来设置主机名,并运行几个初始化脚本.我看到一个名为ec2-set-hostname的脚本,但我不知道是否可以使用它从用户数据中设置任意的主机名,或者用户数据的格式需要什么.任何人都使用这些脚本,知道如何设置主机名并同时运行一些脚本?

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部