什么需要使主机名解析在局域网上工作?

时间:2012-02-06 11:00:59

标签: networking lan

我正在开发一个在局域网上的几台不同计算机上运行的联网应用程序。其中一个核心需求是应用程序维护过去与之通信的LAN上的对等列表,以便它可以恢复以前的会话。天真的解决方案是只记住IP并将其存储在表中,但是当对等体的IP发生变化时会发生什么?

相反,我认为我会存储对等体的主机名,因此即使IP更改,它们仍然可以通过其主机名访问。 (我知道主机名也可以改变,但这已经足够了)。

所以我的问题是,在具有混合Windows / Mac / Linux客户端的局域网上使主机名解析工作到底需要什么?

1 个答案:

答案 0 :(得分:6)

不使用中央权限,实现此目的的唯一可靠方法是使用zerconfiguration名称解析。这意味着如果没有多播路由器,您将只能动态解析与解析主机相同的子网上的对等体。您可以使用像bonjour for mac,netbios或ssdp for windows或avahi for linux这样的东西,但你不能认为这些是启用的。我可能会忽略一些更流行的协议来执行此功能,但我个人会为您的应用程序提供一个快速的udp广播名称解析协议。看看这些更多的想法:

Zeroconf Name resolution

Universal local network name resolution method without DNS?

http://en.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution

http://en.wikipedia.org/wiki/Broadcast_address#IP_networking

我会选择一个特定的udp端口来监听(比方说12000)然后当你准备好解析主机时,在端口12000和所有其他主机上发送一个“hello”udp数据包到255.255.255.255运行应用程序的网络应回复包含其主机名的数据包,可能还有其他信息。