dpkt - falsche UDP Length

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
d33con
User
Beiträge: 2
Registriert: Donnerstag 9. April 2009, 14:41

folgendes problem:

hae diese zwei funktionen um ein paket zu basteln, wobei buildUDPPkt als DATA feld im IP paket mitwandert.
Wenn ich dieses Paket aber sende und den trace in Wireshark beobachte bekomme ich folgendes: BAD UDP LENTH 0<8
woran liegt das? klar: die länge eines paketes kann nicht == 0 sein wenn der header schon mind. 8 ist - aber was habe ich falsch programmiert?

anmerkung: benutze dpkt

ef buildIPPkt(src, dst, data, protocol):
ip_p = dpkt.ip.IP()
ip_p.tos = 0
ip_p.off = 0
ip_p.p = protocol #socket.IPPROTO_UDP
ip_p.ttl = 64 # hop limit
ip_p.src = socket.inet_aton(src)
ip_p.dst = socket.inet_aton(dst)
ip_p.data = str(data);
ip_p.len = 16 + len(data)
return str(ip_p)

def buildUDPPkt(sport,dport,data):
udp_p = dpkt.udp.UDP()
udp_p.sport = 100
udp_p.dport = 1337
udp_p.data = str(data)
udp_p.ulen = 8 + len(data)
return str(data)

vielen dank

d33con
Antworten