netaddr 1.5.3 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of netaddr might be problematic. Click here for more details.

@@ -0,0 +1,51 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestMask32 < Test::Unit::TestCase
7
+ def test_new
8
+ m32 = NetAddr::Mask32.new(24)
9
+ assert_equal("/24", m32.to_s)
10
+ assert_equal(0xffffff00, m32.mask)
11
+
12
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new(-1) }
13
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new(33) }
14
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new("/24") }
15
+ end
16
+
17
+ def test_parse
18
+ m32 = NetAddr::Mask32.parse("255.255.255.0")
19
+ assert_equal("/24", m32.to_s)
20
+
21
+ m32 = NetAddr::Mask32.parse("/24")
22
+ assert_equal("/24", m32.to_s)
23
+
24
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.parse("255.248.255.0") }
25
+ end
26
+
27
+ def test_cmp
28
+ m = NetAddr::Mask32.new(24)
29
+ m2 = NetAddr::Mask32.new(25)
30
+ m3 = NetAddr::Mask32.new(23)
31
+ m4 = NetAddr::Mask32.new(24)
32
+ assert_equal(1, m.cmp(m2))
33
+ assert_equal(-1, m.cmp(m3))
34
+ assert_equal(0, m.cmp(m4))
35
+ end
36
+
37
+ def test_len
38
+ m = NetAddr::Mask32.new(24)
39
+ assert_equal(256, m.len())
40
+
41
+ m = NetAddr::Mask32.new(26)
42
+ assert_equal(64, m.len())
43
+
44
+ m = NetAddr::Mask32.new(32)
45
+ assert_equal(1, m.len())
46
+
47
+ m = NetAddr::Mask32.new(0)
48
+ assert_equal(0, m.len())
49
+ end
50
+
51
+ end
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestNetAddr < Test::Unit::TestCase
7
+
8
+ def test_ipv4_prefix_len
9
+ assert_equal(32,NetAddr.ipv4_prefix_len(1))
10
+ assert_equal(27,NetAddr.ipv4_prefix_len(30))
11
+ assert_equal(24,NetAddr.ipv4_prefix_len(254))
12
+ assert_equal(16,NetAddr.ipv4_prefix_len(0xfffe))
13
+ assert_equal(8,NetAddr.ipv4_prefix_len(0xfffffe))
14
+ assert_equal(0,NetAddr.ipv4_prefix_len(0xffffffff))
15
+ end
16
+
17
+ def test_sort_IPv4
18
+ ips = []
19
+ ["10.0.0.0","1.1.1.1","0.0.0.0","10.1.10.1"].each do |net|
20
+ ips.push(NetAddr::IPv4.parse(net))
21
+ end
22
+ sorted = NetAddr.sort_IPv4(ips)
23
+ expect = [ips[2],ips[1],ips[0],ips[3]]
24
+ assert_equal(expect, sorted)
25
+ end
26
+
27
+ def test_sort_IPv4Net
28
+ nets = []
29
+ ["10.0.0.0/24", "1.0.0.0/24", "10.0.0.0/8", "192.168.1.0/26", "8.8.8.8/32"].each do |net|
30
+ nets.push(NetAddr::IPv4Net.parse(net))
31
+ end
32
+ sorted = NetAddr.sort_IPv4Net(nets)
33
+ expect = [nets[1],nets[4],nets[0],nets[2],nets[3]]
34
+ assert_equal(expect, sorted)
35
+ end
36
+
37
+ def test_summ_IPv4Net
38
+ nets = []
39
+ ["10.0.0.0/29", "10.0.0.8/30", "10.0.0.12/30", "10.0.0.16/28", "10.0.0.32/27", "10.0.0.64/26", "10.0.0.128/25"].each do |net|
40
+ nets.push(NetAddr::IPv4Net.parse(net))
41
+ end
42
+ expect = ["10.0.0.0/24"]
43
+ i = 0
44
+ NetAddr.summ_IPv4Net(nets).each do |net|
45
+ assert_equal(expect[i],net.to_s)
46
+ i += 1
47
+ end
48
+
49
+ nets = []
50
+ ["10.0.0.0/24", "1.0.0.0/8", "3.4.5.6/32", "3.4.5.8/31", "0.0.0.0/0"].each do |net|
51
+ nets.push(NetAddr::IPv4Net.parse(net))
52
+ end
53
+ expect = ["0.0.0.0/0"]
54
+ i = 0
55
+ NetAddr.summ_IPv4Net(nets).each do |net|
56
+ assert_equal(expect[i],net.to_s)
57
+ i += 1
58
+ end
59
+
60
+ nets = []
61
+ ["10.0.1.0/25", "10.0.1.0/26", "10.0.0.16/28", "10.0.0.32/27", "10.0.0.128/26", "10.0.0.192/26", "10.0.0.32/27"].each do |net|
62
+ nets.push(NetAddr::IPv4Net.parse(net))
63
+ end
64
+ expect = ["10.0.0.16/28", "10.0.0.32/27", "10.0.0.128/25", "10.0.1.0/25"]
65
+ i = 0
66
+ NetAddr.summ_IPv4Net(nets).each do |net|
67
+ assert_equal(expect[i],net.to_s)
68
+ i += 1
69
+ end
70
+ end
71
+
72
+ def test_sort_IPv6
73
+ ips = []
74
+ ["1::", "3::", "2::", "::", "::1"].each do |net|
75
+ ips.push(NetAddr::IPv6.parse(net))
76
+ end
77
+ sorted = NetAddr.sort_IPv6(ips)
78
+ expect = [ips[3],ips[4],ips[0],ips[2],ips[1]]
79
+ assert_equal(expect, sorted)
80
+ end
81
+
82
+ def test_sort_IPv6Net
83
+ nets = []
84
+ ["1::/64", "2::/64", "1::/16", "::", "::1"].each do |net|
85
+ nets.push(NetAddr::IPv6Net.parse(net))
86
+ end
87
+ sorted = NetAddr.sort_IPv6Net(nets)
88
+ expect = [nets[3],nets[4],nets[0],nets[2],nets[1]] # ::/128 ::1/128 1::/64 1::/16 2::/64
89
+ assert_equal(expect, sorted)
90
+ end
91
+
92
+ def test_summ_IPv6Net
93
+ nets = []
94
+ ["ff00::/13", "ff08::/14", "ff0c::/14", "ff10::/12", "ff20::/11", "ff40::/10", "ff80::/9"].each do |net|
95
+ nets.push(NetAddr::IPv6Net.parse(net))
96
+ end
97
+ expect = ["ff00::/8"]
98
+ i = 0
99
+ NetAddr.summ_IPv6Net(nets).each do |net|
100
+ assert_equal(expect[i],net.to_s)
101
+ i += 1
102
+ end
103
+
104
+ nets = []
105
+ ["2::/32", "::1", "fec0::/16", "1::/16", "::/0"].each do |net|
106
+ nets.push(NetAddr::IPv6Net.parse(net))
107
+ end
108
+ expect = ["::/0"]
109
+ i = 0
110
+ NetAddr.summ_IPv6Net(nets).each do |net|
111
+ assert_equal(expect[i],net.to_s)
112
+ i += 1
113
+ end
114
+
115
+ nets = []
116
+ ["ff80::/9", "ff10::/12", "ff80::/10", "ff20::/12", "fff0::/16", "fff1::/16", "ff80::/10"].each do |net|
117
+ nets.push(NetAddr::IPv6Net.parse(net))
118
+ end
119
+ expect = ["ff10::/12", "ff20::/12", "ff80::/9", "fff0::/15"]
120
+ i = 0
121
+ NetAddr.summ_IPv6Net(nets).each do |net|
122
+ assert_equal(expect[i],net.to_s)
123
+ i += 1
124
+ end
125
+ end
126
+
127
+ end
data/test/run_all.rb ADDED
@@ -0,0 +1,10 @@
1
+ require_relative "examples.rb"
2
+ require_relative "netaddr_test.rb"
3
+ require_relative "eui48_test.rb"
4
+ require_relative "eui64_test.rb"
5
+ require_relative "ipv4_test.rb"
6
+ require_relative "ipv4net_test.rb"
7
+ require_relative "ipv6_test.rb"
8
+ require_relative "ipv6net_test.rb"
9
+ require_relative "mask32_test.rb"
10
+ require_relative "mask128_test.rb"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netaddr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Spinhirne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-08 00:00:00.000000000 Z
11
+ date: 2018-01-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -16,27 +16,32 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files:
18
18
  - README.md
19
- - Errors
20
- - changelog
21
- - license
19
+ - LICENSE
22
20
  files:
23
- - Errors
21
+ - LICENSE
24
22
  - README.md
25
- - changelog
26
- - lib/cidr.rb
27
- - lib/cidr_shortcuts.rb
28
- - lib/eui.rb
29
- - lib/ip_math.rb
30
- - lib/methods.rb
23
+ - lib/eui48.rb
24
+ - lib/eui64.rb
25
+ - lib/ipv4.rb
26
+ - lib/ipv4net.rb
27
+ - lib/ipv6.rb
28
+ - lib/ipv6net.rb
29
+ - lib/mask128.rb
30
+ - lib/mask32.rb
31
31
  - lib/netaddr.rb
32
- - lib/tree.rb
33
- - lib/validation_shortcuts.rb
34
- - license
35
- - test/cidr_test.rb
36
- - test/eui_test.rb
37
- - test/methods_test.rb
38
- - test/tree_test.rb
39
- homepage:
32
+ - lib/util.rb
33
+ - test/eui48_test.rb
34
+ - test/eui64_test.rb
35
+ - test/examples.rb
36
+ - test/ipv4_test.rb
37
+ - test/ipv4net_test.rb
38
+ - test/ipv6_test.rb
39
+ - test/ipv6net_test.rb
40
+ - test/mask128_test.rb
41
+ - test/mask32_test.rb
42
+ - test/netaddr_test.rb
43
+ - test/run_all.rb
44
+ homepage: https://github.com/dspinhirne/netaddr-rb
40
45
  licenses:
41
46
  - Apache-2.0
42
47
  metadata: {}
@@ -55,8 +60,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
60
  - !ruby/object:Gem::Version
56
61
  version: '0'
57
62
  requirements: []
58
- rubygems_version: 3.3.5
63
+ rubyforge_project:
64
+ rubygems_version: 2.5.1
59
65
  signing_key:
60
66
  specification_version: 4
61
- summary: A package for manipulating network addresses.
67
+ summary: A Ruby library for performing calculations on IPv4 and IPv6 subnets.
62
68
  test_files: []
data/Errors DELETED
@@ -1,7 +0,0 @@
1
- =Error Classes
2
-
3
- +-Exception
4
- +-StandardError
5
- +-BoundaryError => CIDR or EUI is out of bounds for a valid address
6
- +-ValidationError => CIDR or EUI failed validation checks
7
- +-VersionError => CIDR or EUI is of improper version for requested operation
data/changelog DELETED
@@ -1,52 +0,0 @@
1
- Version 1.5.2
2
- Changes:
3
- * bug fixes from: https://github.com/KirillSmirnov, https://github.com/rwhitworth, https://github.com/y13i
4
-
5
- Version 1.5.1
6
- Changes:
7
- * fixed bug with NetAddr#merge (credit to Daniel Boughton)
8
-
9
-
10
- Version 1.5.0
11
- Changes:
12
- * fixed bug with EUI48#to_eui64 (credit to Erik Kline)
13
- * fixed bug with u/l bit toggle on EUI#link_local (credit to Erik Kline)
14
- * added EUI#to_ipv6
15
- * added NetAddr#supernets
16
-
17
-
18
- Version 1.4.0
19
- Changes:
20
- * Added additional options to NetAddr#sort
21
-
22
-
23
- Version 1.3.0
24
- New Features:
25
- * added CIDR#[]
26
- * added CIDR#succ (CIDR objects may now be used as args for the standard Ruby Range class)
27
- * added CIDR#allocate_rfc3531
28
- * added CIDR#to_i
29
- * added CIDRv6.unique_local
30
- * added EUI48#to_eui64
31
- * added EUI#to_i
32
- * added EUI#to_s
33
-
34
- Changes:
35
- * deprecated 'packed' methods
36
-
37
-
38
- Version 1.2.0
39
- Changes:
40
- * CIDRv4#new and CIDRv6#new methods have been changed for the sake of speed improvements.
41
- Please use the CIDR#create method instead.
42
- * changes to CIDR#wildcard_mask
43
- * bug fix with validate_eui method
44
- * bug fix with validate_ip_addr
45
- * bug fix and *vast* simplification of NetAddr.merge
46
-
47
-
48
- New Features:
49
- * speed improvements
50
- * added CIDR#set_wildcard_mask
51
- * added <=>, >, <, == methods to CIDR
52
- * NetAddr.merge now reports which CIDR addresses were used to create new summary addresses