No description or website provided.
Ruby C
Pull request Compare This branch is 6 commits ahead, 16 commits behind bbcoimbra:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ext/rb_getifaddrs
lib/system
spec
.document
.gitignore
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.markdown
Rakefile
system-getifaddrs.gemspec

README.markdown

rumblinthebronx-system-ifaddrs

This lib is a wrapper for get_ifaddrs C routine.

The original routine returns a linked list that contains avaliable inet interfaces. This lib walks on list and return an hash that contains the interface names and sub-hashes with respectives ip addresses and netmasks.

Example

Supose that /sbin/ifconfig returns:

lo  Link encap:Local Loopback
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:16436  Metric:1
    RX packets:86688 errors:0 dropped:0 overruns:0 frame:0
    TX packets:86688 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:10903658 (10.3 MiB)  TX bytes:10903658 (10.3 MiB)

Consider test.rb below:

# test.rb
require "pp"
require "system/getifaddrs"
pp System.get_ifaddrs

When test.rb is executed:

$ ruby test.rb

Should return:

{:lo=>
  {:inet_addr_v4=>"127.0.0.1",
   :netmask_v4=>"255.0.0.0",
   :inet_addr_v6=>"::1",
   :netmask_v6=>"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"}}

Copyright

Copyright (c) 2011 rumblinthebronx. See LICENSE for details.