Coder Social home page Coder Social logo

system-getifaddrs's Introduction

system-ifaddrs https://secure.travis-ci.org/bbcoimbra/system-getifaddrs.png Code ClimateGem VersionDependency Status

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
pp System.get_all_ifaddrs

When test.rb is executed:

$ ruby test.rb

Should return:

{:lo=>{:inet_addr=>"127.0.0.1", :netmask=>"255.0.0.0"}}
[{:interface => "lo", :inet_addr => #<IPAddr '127.0.0.1'>,
    :netmask   => #<IPAddr '255.0.0.0'>},
 {:interface => "lo", :inet_addr => #<IPAddr '::1'>,
    :netmask => #<IPAddr 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'>}]

Copyright

Copyright (c) 2010-2013 Bruno Coimbra. See LICENSE for details.

system-getifaddrs's People

Contributors

bbcoimbra avatar conradirwin avatar rumblinthebronx avatar

Watchers

Qichunren avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.