Module: PacketGen
- Defined in:
- lib/packetgen.rb,
lib/packetgen/header.rb,
lib/packetgen/packet.rb,
lib/packetgen/pcapng.rb,
lib/packetgen/capture.rb,
lib/packetgen/version.rb,
lib/packetgen/structfu.rb,
lib/packetgen/header/ip.rb,
lib/packetgen/header/arp.rb,
lib/packetgen/header/eth.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/icmp.rb,
lib/packetgen/header/ipv6.rb,
lib/packetgen/pcapng/file.rb,
lib/packetgen/pcapng/block.rb,
lib/packetgen/header/icmpv6.rb,
lib/packetgen/pcapng/unknown_block.rb,
lib/packetgen/header/header_methods.rb,
lib/packetgen/header/header_class_methods.rb
Overview
PacketGen is a network packet generator and analyzor.
Defined Under Namespace
Modules: Header, PcapNG, StructFu Classes: Capture, Error, FormatError, Packet, ParseError, WireError
Constant Summary collapse
- VERSION =
PacketGen version
"0.3.0"
Class Method Summary collapse
-
.capture(iface, options = {}) {|packet| ... } ⇒ Array<Packet>
Shortcut for Packet.capture.
-
.default_iface ⇒ String
Get default network interface (ie. first non-loopback declared interface).
-
.force_binary(str) ⇒ String
Force binary encoding for
str. -
.gen(protocol, options = {}) ⇒ Packet
Shortcut for Packet.gen.
-
.parse(binary_str, first_header: nil) ⇒ Packet
Shortcut for Packet.parse.
-
.read(filename) ⇒ Array<Packet>
Shortcut for Packet.read.
-
.write(filename, packets) ⇒ void
Shortcut for Packet.write.
Class Method Details
.capture(iface, options = {}) {|packet| ... } ⇒ Array<Packet>
Shortcut for PacketGen::Packet.capture
39 40 41 |
# File 'lib/packetgen.rb', line 39 def self.capture(iface, ={}) Packet.capture(iface, ) { |packet| yield packet } end |
.default_iface ⇒ String
Get default network interface (ie. first non-loopback declared interface)
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/packetgen.rb', line 67 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
61 62 63 |
# File 'lib/packetgen.rb', line 61 def self.force_binary(str) str.force_encoding Encoding::BINARY end |
.gen(protocol, options = {}) ⇒ Packet
Shortcut for PacketGen::Packet.gen
22 23 24 |
# File 'lib/packetgen.rb', line 22 def self.gen(protocol, ={}) Packet.gen protocol, end |
.parse(binary_str, first_header: nil) ⇒ Packet
Shortcut for PacketGen::Packet.parse
30 31 32 |
# File 'lib/packetgen.rb', line 30 def self.parse(binary_str, first_header: nil) Packet.parse binary_str, first_header end |
.read(filename) ⇒ Array<Packet>
Shortcut for PacketGen::Packet.read
46 47 48 |
# File 'lib/packetgen.rb', line 46 def self.read(filename) Packet.read filename end |
.write(filename, packets) ⇒ void
This method returns an undefined value.
Shortcut for PacketGen::Packet.write
54 55 56 |
# File 'lib/packetgen.rb', line 54 def self.write(filename, packets) Packet.write filename, packets end |