1

为了通知同一局域网内的所有计算机我的存在,我想广播我的主机名和 IP 地址。

如果不将它们作为字符串发送,我该如何做呢?

4

3 回答 3

3

Avik,这就是 DNS 的用途。虽然“常规”DNS 旨在保存每台机器的名称和 IP 地址(静态配置),但有一个动态 DNS 协议允许机器实时更新其 DNS 条目。

这种功能在我的客户的一些办公环境中使用,其中一台机器上的打印机是共享的,但它们连接的机器使用 DHCP(这意味着它们的 IP 地址可以更改)。

有关详细信息以及使用 DHCP 的 Windows 实施,请参见此处此处

让我们将您想要宣传自己的机器称为 SERVER 和所有可以使用它的机器,即 CLIENTS。

当然,动态 DNS 仅将名称/IP 映射通知 DNS 本身,如果客户端已经知道您的 SERVER 以便他们可以从 DNS 获取 IP 地址,则它很有用。如果您无法让 CLIENTS 发现您的 SERVER 刚刚被添加,您仍然需要偶尔广播一个数据包以指示您的 SERVER 存在(这将只需要 SERVER 名称,因为 CLIENTS 将使用 DNS 获取 IP 地址)。

这个广播数据包应该被所有的客户接收并保存在一个本地表中。如果从 CLIENT 到您的 SERVER 的通信失败,则应删除您的 SERVER 的本地表条目(当您的 SERVER 再次广播时将重新添加它)。

于 2009-05-29T08:26:35.260 回答
1

基本上重新发明了NetBIOSZeroConf,在小型嵌入式设备中很流行,以便通过基于 Windows 或 OS X 的安装程序或设置实用程序进行发现。

于 2010-05-12T10:14:58.617 回答
1

您可以尝试使用UPnP 发现

于 2010-05-12T10:25:21.753 回答