问题描述
我想定义一个原始的udp套接字,但我不能发送它,所以我只是手工写了ip和udp头,源ip和目的ip是127.0.0.1,并使用socket.sendto(),但它总是说套接字未连接
import socket
s = socket.socket(socket.AF_INET,socket.soCK_RAW,socket.IPPROTO_UDP)
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
ip_header = b'\x45\x00\x00\x1C' # Version,IHL,Type of Service | Total Length
ip_header += b'\xab\xcd\x00\x00' # Identification | Flags,Fragment Offset
ip_header += b'\x40\x11\xd1\x01' # TTL,Protocol | Header Checksum
ip_header += b'\x7f\x00\x00\x01' # Source Address
ip_header += b'\x7F\x00\x00\x01' # Destination Address
udp_header = b'\x1e\x6c\x27\x0f' # Source Port | Destination Port 9999
udp_header += b'\x00\x08\xbc\x60' #5999 6999
packet = ip_header + udp_header
destaddr = ("",9999)
s.sendto(packet,destaddr)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)