diff --git a/lib/ipaddress/ipv4.rb b/lib/ipaddress/ipv4.rb index a798a24e3a638009d268d9f689c7f5114f6630c8..716d4d9593b794e4d3c369f5be2bcc23da76c8ec 100644 --- a/lib/ipaddress/ipv4.rb +++ b/lib/ipaddress/ipv4.rb @@ -311,7 +311,7 @@ module IPAddress; # #=> true # def network? - @u32 | @prefix.to_u32 == @prefix.to_u32 + (@prefix < 32) && (@u32 | @prefix.to_u32 == @prefix.to_u32) end # diff --git a/test/ipaddress/ipv4_test.rb b/test/ipaddress/ipv4_test.rb index f14463409e8b2a15c7198fee1b994e79d4094c7b..5177c75287017721a2eb250421ed6d935029aa1a 100644 --- a/test/ipaddress/ipv4_test.rb +++ b/test/ipaddress/ipv4_test.rb @@ -148,6 +148,11 @@ class IPv4Test < Test::Unit::TestCase assert_equal true, @network.network? assert_equal false, @ip.network? end + + def test_one_address_network + network = @klass.new("172.16.10.1/32") + assert_equal false, network.network? + end def test_method_broadcast @broadcast.each do |addr,bcast|