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)
相似於 cloud image 裡面最小的 cirros 一樣 container 也有最小的 linux image,就叫做 alpine ,使用方式就如下 docker run -it --rm alpine /bin/ash
留言