From 934d00ba344ef45891110b3ebaafe6f3b7be51ac Mon Sep 17 00:00:00 2001 From: Bogdan Irimie Date: Wed, 9 Oct 2019 13:23:27 +0300 Subject: [PATCH] Add netmask method that returns net mask as string. --- lib/ipaddr.rb | 5 +++++ test/test_ipaddr.rb | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index acd699c..56a2e77 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -467,6 +467,11 @@ def inspect af, _to_string(@addr), _to_string(@mask_addr)) end + # Returns the netmask in string format e.g. 255.255.0.0 + def netmask + _to_string(@mask_addr) + end + protected # Set +@addr+, the internal stored ip address, to given +addr+. The diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb index cc2bb71..d894a17 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -197,6 +197,17 @@ def test_to_s assert_equal("3ffe:0505:0002:0000:0000:0000:0000:0001", IPAddr.new("3ffe:505:2::1").to_string) assert_equal("3ffe:505:2::1", IPAddr.new("3ffe:505:2::1").to_s) end + + def test_netmask + a = IPAddr.new("192.168.1.2/8") + assert_equal(a.netmask, "255.0.0.0") + + a = IPAddr.new("192.168.1.2/16") + assert_equal(a.netmask, "255.255.0.0") + + a = IPAddr.new("192.168.1.2/24") + assert_equal(a.netmask, "255.255.255.0") + end end class TC_Operator < Test::Unit::TestCase