0
有没有办法使用socket.recvfrom(buf)
来获取所有IP和UPD数据? 具体而言,我想知道UDP报头(源端口,目的端口,长度,应用数据)以及IP细节:没有它从何而来,被发送到哪个地址什么的IP?Python - socket.recvfrom()获取整个IP/UDP数据包?
片段:(?)
addrinfo = socket.getaddrinfo(MULTICAST_ADDR, None)[0]
sock = socket.socket(addrinfo[0], socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', DEST_PORT))
#Join Multicast grp.
group = socket.inet_pton(addrinfo[0], addrinfo[4][0])
mreq = group + struct.pack('@I', 0)
sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_JOIN_GROUP, mreq)
while True:
udp_data,ip_sender = sock.recvfrom(4000)
#Only returns udp data field and ip of sender
林在Windows中,并使用socket.SOCK_RAW挂起是否有任何变通办法?
是的,你是对的,需要使用'RAW_SOCKET'。 – dsgdfg
从'recvfrom'返回的第二个值实际上是一个包含发送者IP地址和端口的元组(例如'('192.168.4.135',37754'')。 –