Module: PacketGen

Defined in:
lib/packetgen.rb,
lib/packetgen/types.rb,
lib/packetgen/config.rb,
lib/packetgen/header.rb,
lib/packetgen/packet.rb,
lib/packetgen/pcapng.rb,
lib/packetgen/capture.rb,
lib/packetgen/inspect.rb,
lib/packetgen/version.rb,
lib/packetgen/header/ip.rb,
lib/packetgen/types/int.rb,
lib/packetgen/types/oui.rb,
lib/packetgen/types/tlv.rb,
lib/packetgen/header/arp.rb,
lib/packetgen/header/dns.rb,
lib/packetgen/header/dns.rb,
lib/packetgen/header/esp.rb,
lib/packetgen/header/eth.rb,
lib/packetgen/header/llc.rb,
lib/packetgen/header/tcp.rb,
lib/packetgen/header/tcp.rb,
lib/packetgen/header/udp.rb,
lib/packetgen/pcapng/epb.rb,
lib/packetgen/pcapng/idb.rb,
lib/packetgen/pcapng/shb.rb,
lib/packetgen/pcapng/spb.rb,
lib/packetgen/header/base.rb,
lib/packetgen/header/icmp.rb,
lib/packetgen/header/ipv6.rb,
lib/packetgen/pcapng/file.rb,
lib/packetgen/types/array.rb,
lib/packetgen/header/dot11.rb,
lib/packetgen/header/dot1q.rb,
lib/packetgen/header/dot1x.rb,
lib/packetgen/pcapng/block.rb,
lib/packetgen/types/fields.rb,
lib/packetgen/types/string.rb,
lib/packetgen/header/dns/rr.rb,
lib/packetgen/header/icmpv6.rb,
lib/packetgen/header/dns/opt.rb,
lib/packetgen/header/dns/name.rb,
lib/packetgen/types/int_string.rb,
lib/packetgen/header/dns/option.rb,
lib/packetgen/header/dot11/data.rb,
lib/packetgen/header/tcp/option.rb,
lib/packetgen/header/tcp/options.rb,
lib/packetgen/header/dns/question.rb,
lib/packetgen/header/dns/qdsection.rb,
lib/packetgen/header/dns/rrsection.rb,
lib/packetgen/header/dot11/control.rb,
lib/packetgen/header/dot11/element.rb,
lib/packetgen/pcapng/unknown_block.rb,
lib/packetgen/header/dot11/sub_mngt.rb,
lib/packetgen/header/dot11/management.rb

Overview

This file is part of PacketGen See github.com/sdaubert/packetgen for more informations Copyright © 2016 Sylvain Daubert <[email protected]> This program is published under MIT license.

Defined Under Namespace

Modules: Header, Inspect, PcapNG, Types Classes: Capture, Config, Error, FormatError, Packet, ParseError, WireError

Constant Summary collapse

VERSION =

PacketGen version

"1.4.2"

Class Method Summary collapse

Class Method Details

.capture(options = {}) {|packet| ... } ⇒ Array<Packet>

Parameters:

Yield Parameters:

Returns:



45
46
47
# File 'lib/packetgen.rb', line 45

def self.capture(options={})
  Packet.capture(options) { |packet| yield packet if block_given? }
end

.default_ifaceString

Get default network interface (ie. first non-loopback declared interface)

Returns:

  • (String)


73
74
75
76
77
78
79
80
81
82
83
# File 'lib/packetgen.rb', line 73

def self.default_iface
  return @default_iface if @default_iface

  ipaddr = `ip addr`.split("\n")
  @default_iface = ipaddr.each_with_index do |line, i|
    m = line.match(/^\d+: (\w+\d+):/)
    next if m.nil?
    next if m[1] == 'lo'
    break m[1]
  end
end

.force_binary(str) ⇒ String

Force binary encoding for str

Parameters:

  • str (String)

Returns:

  • (String)

    binary encoded string



67
68
69
# File 'lib/packetgen.rb', line 67

def self.force_binary(str)
  str.force_encoding Encoding::BINARY
end

.gen(protocol, options = {}) ⇒ Packet

Shortcut for PacketGen::Packet.gen

Parameters:

  • protocol (String)

    base protocol for packet

  • options (Hash) (defaults to: {})

    specific options for protocol

Returns:



28
29
30
# File 'lib/packetgen.rb', line 28

def self.gen(protocol, options={})
  Packet.gen protocol, options
end

.parse(binary_str, first_header: nil) ⇒ Packet

Parameters:

  • binary_str (String)
  • first_header (String) (defaults to: nil)

    First protocol header

Returns:



36
37
38
# File 'lib/packetgen.rb', line 36

def self.parse(binary_str, first_header: nil)
  Packet.parse binary_str, first_header: first_header
end

.read(filename) ⇒ Array<Packet>

Shortcut for PacketGen::Packet.read

Parameters:

  • filename (String)

    PcapNG file

Returns:



52
53
54
# File 'lib/packetgen.rb', line 52

def self.read(filename)
  Packet.read filename
end

.write(filename, packets) ⇒ void

This method returns an undefined value.

Shortcut for PacketGen::Packet.write

Parameters:

  • filename (String)
  • packets (Array<Packet>)

    packets to write



60
61
62
# File 'lib/packetgen.rb', line 60

def self.write(filename, packets)
  Packet.write filename, packets
end