class FlowTag::Packet
Attributes
data[R]
dport[R]
ip_dst[R]
ip_src[R]
length[R]
sport[R]
tcp_dport[R]
tcp_sport[R]
time[R]
udp_dport[R]
udp_sport[R]
Public Class Methods
new(time, data)
click to toggle source
# File lib/flowtag/pcapparser.rb, line 60 def initialize(time, data) @time = time @data = data @length = data.length @ip = @tcp = @udp = false @ip_src = @ip_dst = @sport = @dport = @tcp_sport = @tcp_dport = @udp_sport = @udp_dport = nil @ip = (data[12,2].unpack("n")[0] == 0x0800) ? true : false offset = 14 if @ip @ip_hlen = (data[offset,1].unpack("C")[0] & 0x0f) << 2 @ip_proto = data[offset+9,1].unpack("C")[0] @ip_src, @ip_dst = data[offset+12,8].unpack("NN") offset += @ip_hlen @tcp = true if @ip_proto == 0x06 @udp = true if @ip_proto == 0x11 if @tcp @sport, @dport = data[offset,4].unpack("nn") @tcp_sport = @sport @tcp_dport = @dport @tcp_hlen = (data[offset+12,1].unpack("C")[0] >> 4) << 2 offset += @tcp_hlen elsif @udp @sport, @dport = data[offset,4].unpack("nn") @udp_sport = @sport @udp_dport = @dport offset += 8 end end @data_offset = offset end
Public Instance Methods
ip?()
click to toggle source
# File lib/flowtag/pcapparser.rb, line 91 def ip? @ip end
payload()
click to toggle source
# File lib/flowtag/pcapparser.rb, line 103 def payload @data[@data_offset,10000] end
tcp?()
click to toggle source
# File lib/flowtag/pcapparser.rb, line 99 def tcp? @tcp end
udp?()
click to toggle source
# File lib/flowtag/pcapparser.rb, line 95 def udp? @udp end