Module: Linux::Ip::Route
- Defined in:
- lib/linux/ip/route.rb
Defined Under Namespace
Classes: IpRoute
Class Method Summary collapse
- .parse ⇒ Object
-
.parse_from_lines(lines) ⇒ Object
23: br202: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether d0:27:88:d1:01:6d brd ff:ff:ff:ff:ff:ff inet 10.10.103.11/22 brd 10.10.103.255 scope global br202 valid_lft forever preferred_lft forever inet6 fe80::84c6:95ff:feb7:d76d/64 scope link valid_lft forever preferred_lft forever.
Class Method Details
.parse ⇒ Object
114 115 116 |
# File 'lib/linux/ip/route.rb', line 114 def self.parse parse_from_lines(IO.popen("ip -4 route show").read.lines.to_a + IO.popen("ip -6 route show").read.lines.to_a) end |
.parse_from_lines(lines) ⇒ Object
23: br202: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether d0:27:88:d1:01:6d brd ff:ff:ff:ff:ff:ff
inet 10.10.103.11/22 brd 10.10.103.255 scope global br202
valid_lft forever preferred_lft forever
inet6 fe80::84c6:95ff:feb7:d76d/64 scope link
valid_lft forever preferred_lft forever
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/linux/ip/route.rb', line 81 def self.parse_from_lines(lines) ip_route = IpRoute.new iface = nil lines.each do |line| line = line.strip.chomp dev_m = /^([0-9a-fA-F\.\:\/]+)\s+dev\s+([a-z0-9\.]+)\s*(.*)$/.match(line) if dev_m #puts "Dev #{dev_m[2]} -> #{dev_m.inspect}" ip_route.add_dev(dev_m[2], dev_m[1], dev_m[3]) else via_m = /^([0-9a-fA-F\.\:\/]+|default)\s+via\s+([a-z0-9\.\:]+)\s+dev\s+([a-z0-9\.]+)\s*(.*)$/.match(line) if via_m #puts "Via #{via_m[3]} -> #{via_m.inspect}" ip_route.add_via(via_m[3], via_m[1], via_m[2], via_m[4]) else direct_m = /^(blackhole)\s+([0-9a-fA-F\.\:\/]+)$/.match(line) if direct_m ip_route.add_via(direct_m[1], direct_m[2], nil, "") else # unreachable 2a04:2f80::/29 dev lo metric 1024 error -101 unreachable_m = /^(unreachable)\s+([0-9a-fA-F\.\:\/]+)\s+dev\s+([a-z0-9\.]+)\s+(.*)$/.match(line) if unreachable_m ip_route.add_dev(unreachable_m[3], unreachable_m[2], unreachable_m[1]+" "+unreachable_m[4]) else puts "> #{line}" end end end end end ip_route end |