import socket MCAST_GRP = '224.1.1.2' MCAST_PORT = 5007 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) # specific interface ip and bind to socket sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton("192.168.20.1")) sock.sendto("this is message", (MCAST_GRP, MCAST_PORT)) ==== RAW , IGMP import socket s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, 0x8100) s.bind(('VLAN1', 0x8100)) res='' temp='01 00 5E 00 43 67 00 02 B3 C8 7F 44 81 00 00 01 08 00 46 00 00 20 00 01 00 00 01 02 36 4C C0 A8 0a 7b EA 00 43 67 94 04 00 00 16 00 BC 97 EA 00 43 67' for i in temp.split(' '): res+=chr(int(i, 16)) s.send(res)