【问题标题】:How to specify the multicast SEND interface in Python?如何在 Python 中指定多播 SEND 接口?
【发布时间】:2012-03-14 12:00:57
【问题描述】:

有很多例子可以通过特定的网络接口(NIC,例如 eth0、127.0.0.1 等)接收多播消息。但是,很少有关于如何将多播 (UDP) 消息发送到特定接口的讨论/示例,例如本地循环(127.0.0.1),而不是默认的 eth0。

背景:RedHat Linux、Python、224.1.1.1 5005

Python 代码示例 Multicast in Python

关于 IPv6 的类似讨论 How to send multicast packets via a specfic interface in Linux

针对 Windows 的类似讨论 How to Multicast (send) to first NIC?

提前致谢。

【问题讨论】:

    标签: python linux multicast ipv4


    【解决方案1】:

    您链接How to Multicast (send) to first NIC? 的问题提到您可以使用IP_MULTICAST_IF

    sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(addr))
    

    【讨论】:

    • 别忘了增加TTL
    • @e271p314:我不记得它是关于什么的,但the code example that is linked in the question appears to handle TTL already (since 2009)。我的答案设置了一个选项,即它只回答标题中的问题。
    • 首先,非常感谢,您的回答是正确的。当我尝试它时,我发现我没有收到多播,并且正在努力理解问题所在。我的 TTL 配置为 2,因为我复制粘贴了代码。一段时间后,我从这个link 意识到我需要“增加访问其他网络”所以我只是认为如果可能对其他回答你的答案有用的话也得到这个提示:-)
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 2012-11-16
    • 2011-04-21
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多