【问题标题】:How can you add the feature "see other computer on this local network"?如何添加“查看本地网络上的其他计算机”功能?
【发布时间】:2011-02-03 09:01:24
【问题描述】:

假设我有一个名为 super-dupper-app 的桌面软件。我希望它能够检测到此本地网络上所有运行着 super-dupper-app 的计算机。

非常感谢一般指针。 Python 指针或 sn-ps 的加分项。

【问题讨论】:

    标签: python networking local autodiscovery


    【解决方案1】:

    简短的回答是您使用multicast packets in python。我相信avahi 也有 python 绑定,它实现了“ZeroConf”又名 mDNS/DNS-SD,它是在多播之上实现的,可以让您不必重新发明轮子,也可以更加标准。

    组播介于单播(数据包发送到一个主机)和广播(数据包发送到所有主机)之间,因为它允许主机(通常通过在它们上运行的应用程序)注册对某些组播组的兴趣。在适当的支持下,多播流量可以通过路由器和交换机,其想法是构建最小生成树以将数据包发送到所有订阅的主机。在 IPv4 多播中使用 224/4 子网。对于 IPv6,这是 ff00::/8。在以太网中,多播地址被映射到 MAC 地址(即在 MAC 地址中将多播位设置为 1),这使得多播流的有效过滤成为可能。

    例如,运行 RIPv2 的路由器使用多播来发现其他相邻路由器并共享它们的路由,而不会打扰对 RIP 不感兴趣的主机。

    mDNS/Bonjour/Rendevouz 是一种自动服务发现方法,它使用一个多播组来共享列出 LAN 上可用服务的 DNS 样式消息。

    【讨论】:

    • 我不能在 6 分钟之前接受这个答案,但会接受。与此同时,你能告诉我更多关于它的信息吗?什么是组播数据包?什么是“ZeroConf”又名 mDNS/DNS-SD?
    • 谷歌?我想今天一定是下跌了 ;-)
    • 我当然是在谷歌上搜索安迪。你怎么看?引用另一个 OP “谷歌就像在列表上迭代,而 SO 就像使用哈希映射”。因此,如果我可以拥有 o(1) anwser,为什么不在我进行 o(n) 查找时要求它?
    • 谢谢哥们。接受了你的回答,因为它真的很糟糕:-)
    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2014-03-23
    • 2015-10-09
    相关资源
    最近更新 更多