【问题标题】:Broadcasting hostname and IP address广播主机名和 IP 地址
【发布时间】:2009-04-02 05:17:41
【问题描述】:

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

如何在不将它们作为字符串发送的情况下这样做?

【问题讨论】:

  • 您想向他们发送什么as?主机名一个字符串。
  • 我在这里几乎一无所知..有什么方法可以发送它并确保接收端不需要转换?
  • 好吧,我的意思是主机名将是字符串类型,而 ipddress 将是 System.net.ipaddress 类型。无论如何它们可以作为原始类型发送而不需要将它们转换为任何中间形式?
  • 您是否考虑过发送 UDP 广播?
  • 只是为了确认,如果我只是将主机名发送到局域网上的所有其他计算机。如果需要,任何人都可以向我发送消息。他们只需要使用“gethostaddress”来获取 IP 地址。我的方向正确吗?

标签: broadcast


【解决方案1】:

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

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

请参阅herehere 了解详细信息以及使用 DHCP 的 Windows 实施。

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您可以尝试使用UPnP Discovery

      【讨论】:

        猜你喜欢
        • 2021-01-18
        • 2014-12-19
        • 2014-12-02
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-31
        • 2013-03-25
        相关资源
        最近更新 更多