如何使用python从特定接口发送igmp连接?

如何使用python从特定接口发送igmp连接?,python,sockets,linux-kernel,multicast,igmp,Python,Sockets,Linux Kernel,Multicast,Igmp,我正在尝试用Python实现以下程序,以从特定接口发送连接请求(现在我的内核默认选择了一些东西) 我试图将socket.INADDR\u ANY更改为socket.inet\u aton('X.X.X.X') 当X.X.X.X是用字符串表示的我的接口ip地址时,我得到了一个错误 有什么办法可以让它工作吗 谢谢,塔洛找到了答案: 需要将“4sl”更改为“4s4s”,并将要发送igmp加入请求的接口表示为四字节字符串。我可以按如下方式编写代码: interface='168.152.63.15' m

我正在尝试用Python实现以下程序,以从特定接口发送连接请求(现在我的内核默认选择了一些东西)

我试图将
socket.INADDR\u ANY
更改为
socket.inet\u aton('X.X.X.X')
X.X.X.X
是用字符串表示的我的接口ip地址时,我得到了一个错误

有什么办法可以让它工作吗

谢谢,塔洛找到了答案: 需要将“4sl”更改为“4s4s”,并将要发送igmp加入请求的接口表示为四字节字符串。我可以按如下方式编写代码:
interface='168.152.63.15'
mreq=struct.pack(“4s4s”、socket.inet\u aton(MCAST\u GRP)、socket.inet\u aton(interface))

 import socket
 import struct
 import time  
 MCAST_GRP = '239.0.1.1' 
 MCAST_PORT = 2000      
 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)  
 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
 sock.bind((MCAST_GRP, MCAST_PORT)) 
 mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) 
 sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)