Net::IP

Build Status Code Climate Gem Version

Tools for working with IP routes and rules

Usage

Routes

require 'net/ip'

Net::IP.routes.flush(:cache)

Net::IP.routes.each do |route|
  puts route
end

Net::IP.routes.find_gateways.each do |gateway|
  puts gateway.via
end

gws = ["192.168.0.1", "192.168.0.2"].collect do |ip|
  Net::IP::Route.new(:via => ip, :dev => "eth0", :weight => 1)
end

Net::IP.routes.update_gateways(gws)

Rules

require 'net/ip'

Net::IP.rules.each do |rule|
  puts rule
end

rule = Net::IP::Rule.new(:to => '1.1.1.1', :table => 'custom')
Net::IP.rules.add(rule)