Skip to content


Subversion checkout URL

You can clone with
Download ZIP
tree: 2b619a413a
Fetching contributors…

Cannot retrieve contributors at this time

84 lines (77 sloc) 2.537 kB
import dpkt
from pcaputil import *
class Packet(object):
Represents a TCP packet. Copied from pyper, with additions. contains
socket, timestamp, and data
ts = dpkt timestamp
buf = original data from which eth was constructed
eth = dpkt.ethernet.Ethernet. Original ethernet frame.
ip = dpkt.ip.IP. Original IP packet.
tcp = dpkt.tcp.TCP.
socket = standard socket tuple: ((srcip, sport), (dstip, dport))
data = data from TCP segment
seq, seq_start = sequence number
seq_end = first sequence number past this packets data (past the end slice
index style)
def __init__(self, ts, buf, eth, ip, tcp):
ts = timestamp
buf = original packet data
eth = dpkt.ethernet.Ethernet that the packet came from
ip = dpkt.ip.IP that the packet came from
tcp = dpkt.tcp.TCP that the packet came from
self.ts = ts
self.buf = buf
self.eth = eth
self.ip = ip
self.tcp = tcp
self.socket = ((self.ip.src,,(self.ip.dst, self.tcp.dport)) =
self.seq = tcp.seq
self.ack = tcp.ack
self.flags = tcp.flags
self.seq_start = self.tcp.seq
self.seq_end = self.tcp.seq + len( # - 1
self.rtt = None
def __cmp__(self, other):
return cmp(self.ts, other.ts)
def __eq__(self, other):
return not self.__ne__(other)
def __ne__(self, other):
if isinstance(other, Packet):
return cmp(self, other) != 0
return True
def __repr__(self):
return 'Packet(%s, %s, seq=%x , ack=%x, data="%s")' % (
class PadPacket(Packet):
Represents a fake TCP packet used for padding missing data.
def __init__(self, seq, size, ts):
self.ts = ts
self.buf = None
self.eth = None
self.ip = None
self.tcp = None
self.socket = None = '\0' * size
self.seq = seq
self.ack = None
self.flags = None
self.seq_start = seq
self.seq_end = self.seq_start + size
self.rtt = None
def __repr__(self):
return 'PadPacket(seq=%d, size=%d)' % (self.seq, len(
Jump to Line
Something went wrong with that request. Please try again.