netaddr 1.5.1 → 2.0.3

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,42 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netaddr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Spinhirne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-25 00:00:00.000000000 Z
11
+ date: 2018-03-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files:
18
- - README
19
- - Errors
20
- - changelog
21
- - license
18
+ - README.md
19
+ - LICENSE
22
20
  files:
23
- - Errors
24
- - README
25
- - changelog
26
- - lib/cidr.rb
27
- - lib/cidr_shortcuts.rb
28
- - lib/eui.rb
29
- - lib/ip_math.rb
30
- - lib/methods.rb
21
+ - LICENSE
22
+ - README.md
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: {}
@@ -56,8 +61,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
61
  version: '0'
57
62
  requirements: []
58
63
  rubyforge_project:
59
- rubygems_version: 2.2.2
64
+ rubygems_version: 2.5.2.1
60
65
  signing_key:
61
66
  specification_version: 4
62
- summary: A package for manipulating network addresses.
67
+ summary: A Ruby library for performing calculations on IPv4 and IPv6 subnets.
63
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/README DELETED
@@ -1,17 +0,0 @@
1
- =Introduction
2
-
3
- NetAddr arose through my need as a network engineer for a
4
- back-end module that could easily handle such advanced tasks
5
- as automating the subnetting/supernetting
6
- of IP space, performing calculations on IP CIDR blocks, and other
7
- various items. At that time there were no modules that could
8
- do any of the things that I needed, so I set out to create my own.
9
- Since it has proven to be fairly useful to me, I have decided to share the
10
- code with the Ruby community.
11
-
12
- I have added things that I find immediately useful for me. I am
13
- open to suggestions if there is something that I could add to make
14
- your life easier.
15
-
16
- Dustin Spinhirne
17
-
data/changelog DELETED
@@ -1,58 +0,0 @@
1
- ==Version
2
- ====1.5.1
3
-
4
- ===Changes
5
- * fixed bug with NetAddr#merge (credit to Daniel Boughton)
6
-
7
-
8
- ==Version
9
- ====1.5.0
10
-
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
19
- ====1.4.0
20
-
21
- ===Changes
22
- * Added additional options to NetAddr#sort
23
-
24
-
25
- ==Version
26
- ====1.3.0
27
-
28
- ===New Features
29
- * added CIDR#[]
30
- * added CIDR#succ (CIDR objects may now be used as args for the standard Ruby Range class)
31
- * added CIDR#allocate_rfc3531
32
- * added CIDR#to_i
33
- * added CIDRv6.unique_local
34
- * added EUI48#to_eui64
35
- * added EUI#to_i
36
- * added EUI#to_s
37
-
38
- ===Changes
39
- * deprecated 'packed' methods
40
-
41
-
42
- ==Version
43
- ====1.2.0
44
-
45
- ===Changes
46
- * CIDRv4#new and CIDRv6#new methods have been changed for the sake of speed improvements.
47
- Please use the CIDR#create method instead.
48
- * changes to CIDR#wildcard_mask
49
- * bug fix with validate_eui method
50
- * bug fix with validate_ip_addr
51
- * bug fix and *vast* simplification of NetAddr.merge
52
-
53
-
54
- ===New Features
55
- * speed improvements
56
- * added CIDR#set_wildcard_mask
57
- * added <=>, >, <, == methods to CIDR
58
- * NetAddr.merge now reports which CIDR addresses were used to create new summary addresses