如何添加“查看本地网络上的其他计算机”功能?

时间:2011-02-03 09:01:24

标签: python networking local autodiscovery

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

一般指针真的很感激。 Python指针或片段的加分点。

1 个答案:

答案 0 :(得分:3)

简短的回答是你使用multicast packets in python。我相信还有avahi的python绑定,它实现了“ZeroConf”,即mDNS / DNS-SD,它是在多播的基础上实现的,可以节省你不得不重新发明轮子以及更加标准化。 / p>

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

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

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