广播到未知的 C 类网络

网络工程 ip IPv4 子网 IP地址 播送
2022-02-16 08:32:46

我正在尝试使用 python 广播到我的本地网络,但我找不到获取子网掩码的方法。有人建议我使用默认的 C 类网络子网掩码 255.255.255.0,并使用生成的广播地址计算,除非用户提供子网掩码详细信息,我希望最终用户绝对避免这种情况。

如果一个用户有一个细分的C类网络,这样计算出来的广播是到达整个本地网络,还是只到达本地网络的最高位划分?我的理解是不稳定的。

1个回答

首先,如果您使用广播和网络类,那么您仍然停留在上个世纪。网络类已死。

广播会中断LAN 上的每个主机(路由器、打印机、所有 PC 等),包括那些对广播不感兴趣的主机。许多公司现在会拒绝使用广播的应用程序,因为它会中断每个主机,并且可能是一个安全问题。事实上,IPv6 已经消除了广播,如果您的应用程序依赖于广播,您不能简单地将其移植到 IPv6。此外,广播不会通过路由器。

现代的做事方式是使用多播。感兴趣的主机将订阅一个特定的多播组(最好是来自组织本地范围的一个239.0.0.0/8)。发送的应用程序将作为目的地址发送到组播组,订阅组播组的主机将获取并处理数据包,而其他主机不会被中断。可以启用多播路由,并且与广播数据包不同,多播数据包可以路由到其他网络。


如果你坚持广播,那么只需使用有限的广播地址255.255.255.255,就会向局域网上的每一台主机发送一个广播。请记住,广播在路由器处停止,因此不同网络上的任何主机都需要该网络上的主机来发送广播。