Sys::IP
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 addressget_ips( --> Array )
get_interfaces( --> Array[Hash] )
Instalation
zef install Sys::IP
Testing
prove -ve 'perl6 -Ilib'