README

raku Sys::IP

Get system IP / Interfaces with Raku programming language

VERSION

0.1.0

DESCRIPTION

Get system IP/DNS/Gateway addresses and interfaces. It doesn't rely on ifconfig/ipconfig etc. It does this by using routing table default route and C ABI. All method works fine on Linux only ( for now ). BSD is the next target.

Coming soon

BSD, Windows

Why not ifconfig / ipconfig

Really ?

Example

use Sys::IP;

# Get system default IP
say Sys::IP.new.get_default_ip(); # 192.168.0.1

# Get all active IP's
say Sys::IP.new.get_ips(); # [ 192.168.0.1, 192.168.0.2 ]

# Get all active interfaces
say Sys::IP.new.get_interfaces(); # [ { name => eth0, ip-addr => 192.168.0.1 }, ...]

# Get all DNS addresses
say Sys::IP.new.get_dns_ips(); # [ 127.0.0.23, 8.8.8.8 ]

Constructor

  • :$ipv6 = False include ipv6 addresses

  • :$loopback = False include loopback interface

  • :$active = True include only active interfaces

  • :$ip = True include only interfaces with assigned IP address

Methods

  • new( Bool :$ipv6 = False, Bool :$loopback = False, Bool :$active = True, Bool :$ip = True --> Sys::IP )

  • get_default_ip( --> Str ) when used with :ipv6 it will return only ipv6 address

  • get_ips( --> Array )

  • get_interfaces( --> Array[Hash] )

Instalation

zef install Sys::IP

Testing

prove -ve 'perl6 -Ilib'

Sys::IP v0.1.0

Get host IP / Interfaces

Authors

  • Denis Kanchev

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Sys::IP
  • Sys::IP::DNS
  • Sys::IP::RAW
  • Sys::IP::Routes

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.