jbussdieker/ruby-net-ip

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Net::IP

[![Gem Version](https://badge.fury.io/rb/net-ip.png)](http://badge.fury.io/rb/net-ip)
[![Build Status](https://travis-ci.org/jbussdieker/ruby-net-ip.png?branch=master)](https://travis-ci.org/jbussdieker/ruby-net-ip)
[![Code Climate](https://codeclimate.com/github/jbussdieker/ruby-net-ip.png)](https://codeclimate.com/github/jbussdieker/ruby-net-ip)
[![Dependency Status](https://gemnasium.com/jbussdieker/ruby-net-ip.svg)](https://gemnasium.com/jbussdieker/ruby-net-ip)

Tools for working with IP routes and rules

## Usage

### Routes

````ruby
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

````ruby
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)
````