Module: Ifconf
- Defined in:
- lib/ifconf.rb,
lib/ifconf/errors.rb,
lib/ifconf/version.rb,
lib/ifconf/snapshot.rb,
lib/ifconf/link_layer.rb,
lib/ifconf/ipv4_config.rb,
lib/ifconf/ipv6_config.rb,
lib/ifconf/mac_address.rb,
lib/ifconf/parse_error.rb,
lib/ifconf/ppp_link_layer.rb,
lib/ifconf/interface_flags.rb,
lib/ifconf/null_ipv4_config.rb,
lib/ifconf/network_interface.rb,
lib/ifconf/parsers/ipv4_line.rb,
lib/ifconf/parsers/ipv6_line.rb,
lib/ifconf/tunnel_link_layer.rb,
lib/ifconf/unknown_link_layer.rb,
lib/ifconf/ethernet_link_layer.rb,
lib/ifconf/loopback_link_layer.rb,
lib/ifconf/parsers/header_line.rb,
lib/ifconf/interface_statistics.rb,
lib/ifconf/parsers/mask_converter.rb,
lib/ifconf/parsers/link_layer_line.rb,
lib/ifconf/parsers/statistics_group.rb,
lib/ifconf/parsers/raw_text_splitter.rb
Overview
Parses Linux ifconfig output into a rich domain model of network interfaces.
Defined Under Namespace
Modules: Parsers Classes: Error, EthernetLinkLayer, InterfaceFlags, InterfaceStatistics, InvalidInterfaceName, InvalidMacAddress, InvalidSubnetMask, Ipv4Config, Ipv6Config, LinkLayer, LoopbackLinkLayer, MacAddress, MalformedBlockError, NetworkInterface, NullIpv4Config, ParseError, PppLinkLayer, Snapshot, TunnelLinkLayer, UnknownLinkLayer
Constant Summary collapse
- Network =
Ronin::Support::Network
- VERSION =
"0.1.0".freeze
Class Method Summary collapse
Class Method Details
.loader ⇒ Object
13 14 15 |
# File 'lib/ifconf.rb', line 13 def self.loader @loader end |
.parse(raw_output) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ifconf.rb', line 17 def self.parse(raw_output) blocks = Parsers::RawTextSplitter.split(raw_output) interfaces = [] errors = [] blocks.each do |block| iface = parse_block(block) interfaces << iface rescue MalformedBlockError => e errors << ParseError.build( raw: block.raw, reason: e., line: block.start_line, severity: :error, ) end Snapshot.build(interfaces: interfaces, errors: errors) end |