【问题标题】:How does some apps to get the hostname of device based on ip?一些应用程序如何根据 ip 获取设备的主机名?
【发布时间】:2016-01-14 16:02:02
【问题描述】:

您是否见过那些探索本地网络以寻找设备的应用? 好吧,我想知道他们是如何获得(大部分)设备名称的!

有人知道吗?因为我正在构建一个需要获取(如果可能)本地设备主机名的应用程序..

【问题讨论】:

  • 我开始认为他们可能会使用大多数设备中设置的 netbios 名称
  • 你找到nodejs的解决方案了吗?如何在 nodejs 中获取 netbios 名称?
  • @Laurens,哇,这么老的帖子。我终于用 SNMP 做到了,为了我的目的,它运行良好。

标签: node.js networking dns


【解决方案1】:

本地网络设备发现通常由 zeroconf 实现完成(例如,Apple 服务通常使用 Bonjour 服务来发现本地设备名称)。

如果你想探索在 nodeJS 中使用的这种类型的服务,那么不妨看看https://github.com/agnat/node_mdns。我自己从未使用过它,但它似乎相当受欢迎且稳定。

否则只需围绕 zeroconf/mdns 做一些研究,然后根据您的需要做出决定。

【讨论】:

  • 你是对的,我也是。看看这个:github.com/angryziber/ipscan/blob/master/src/net/azib/ipscan/… 我开始搜索 Angry IP Scanner 源代码,发现它通过不同的方法来完成,gethostbyaddr、mdns、netbios,它会尝试它们,并获取可能的主机名!...所以我将在我的节点应用程序中实现它们,我没有注意零配置设备的 mdns ......非常感谢! ;)
  • 也许我需要一些额外的帮助,因为我没有让它工作!据我所见,node-mdns 让我看到了零配置的“已发布”服务,但我没有看到任何获取特殊值(例如主机名)的选项。抱歉,有什么帮助吗?
  • mdns 和 zeroconf 等服务要求您网络上的其他设备通过此服务“广播”它们的设备名称。如果您只是想获取本地网络上设备的主机名,并且这些设备不会通过 mdns 服务进行广播,那么您将不得不尝试 NetBIOS 查询或检查您的 arp 表(arp -一种)。如果网络上的所有设备都由您管理,DNS 将是一个更好的设置。
  • 我可以在“浏览”结果中看到设备的名称!但我无法将我的请求指向特定设备。我的意思是 node-mdns 只允许我进行全局浏览,它显示所有发布服务的设备及其数据,其中包含主机名!但我只想为特定的 IP 地址获取它。对不起我的英语,我说西班牙语,希望你能理解我
  • 那么我假设您希望提供 IP 地址并获取主机名是否正确?看看这是否回答了您的问题:serverfault.com/questions/143184/…
猜你喜欢
  • 2016-10-23
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多