ipadmin 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +143 -99
- data/lib/ip_admin.rb +555 -86
- data/tests/cidr_table_test.rb +29 -1
- data/tests/cidr_test.rb +5 -2
- data/tests/dns_test.rb +68 -0
- data/tests/functions_test.rb +28 -1
- data/tests/ipaddr_test.rb +7 -4
- metadata +3 -2
data/tests/cidr_table_test.rb
CHANGED
@@ -5,7 +5,7 @@ require 'test/unit'
|
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
class
|
8
|
+
class TestCIDRTable < Test::Unit::TestCase
|
9
9
|
|
10
10
|
def test_new
|
11
11
|
assert_not_nil(IPAdmin::CIDRTable.new(4) )
|
@@ -41,6 +41,34 @@ class TestCIDR < Test::Unit::TestCase
|
|
41
41
|
|
42
42
|
end
|
43
43
|
|
44
|
+
def test_rem_cidr
|
45
|
+
cidr4_1 = IPAdmin::CIDR.new(:CIDR => '192.168.1.0/24')
|
46
|
+
cidr4_2 = IPAdmin::CIDR.new(:CIDR => '10.1.0.0/24')
|
47
|
+
cidr4_3 = IPAdmin::CIDR.new(:CIDR => '192.168.1.0/26')
|
48
|
+
cidr4_4 =IPAdmin::CIDR.new(:CIDR => '192.168.1.0/30')
|
49
|
+
cidr4_5 = IPAdmin::CIDR.new(:CIDR => '192.168.1.64/26')
|
50
|
+
cidr4_6 = IPAdmin::CIDR.new(:CIDR => '192.168.1.128/26')
|
51
|
+
cidr4_7 = IPAdmin::CIDR.new(:CIDR => '192.168.1.192/26')
|
52
|
+
|
53
|
+
table4 = IPAdmin::CIDRTable.new(4)
|
54
|
+
|
55
|
+
table4.add_cidr(cidr4_1)
|
56
|
+
table4.add_cidr(cidr4_2)
|
57
|
+
table4.add_cidr(cidr4_3)
|
58
|
+
table4.add_cidr(cidr4_4)
|
59
|
+
table4.add_cidr(cidr4_5)
|
60
|
+
table4.add_cidr(cidr4_6)
|
61
|
+
table4.add_cidr(cidr4_7)
|
62
|
+
|
63
|
+
table4.rem_cidr(cidr4_5)
|
64
|
+
dump = table4.dump
|
65
|
+
assert_equal(6, dump.length)
|
66
|
+
|
67
|
+
table4.rem_cidr(cidr4_1)
|
68
|
+
dump = table4.dump
|
69
|
+
assert_equal(1, dump.length)
|
70
|
+
end
|
71
|
+
|
44
72
|
def test_find_ip
|
45
73
|
ip4_1 = IPAdmin::IPAddr.new(:IPAddr => '192.168.1.1')
|
46
74
|
ip4_2 = IPAdmin::IPAddr.new(:IPAddr => '10.1.0.1')
|
data/tests/cidr_test.rb
CHANGED
@@ -30,8 +30,11 @@ class TestCIDR < Test::Unit::TestCase
|
|
30
30
|
|
31
31
|
assert_equal('0.0.0.255',cidr4.hostmask_ext() )
|
32
32
|
|
33
|
-
assert_equal(24,cidr4.
|
34
|
-
assert_equal(64,cidr6.
|
33
|
+
assert_equal(24,cidr4.bits() )
|
34
|
+
assert_equal(64,cidr6.bits() )
|
35
|
+
|
36
|
+
assert_equal('/24',cidr4.netmask() )
|
37
|
+
assert_equal('/64',cidr6.netmask() )
|
35
38
|
|
36
39
|
assert_equal('255.255.255.0',cidr4.netmask_ext() )
|
37
40
|
|
data/tests/dns_test.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require '../lib/ip_admin.rb'
|
4
|
+
require 'test/unit'
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
class TestDNS < Test::Unit::TestCase
|
9
|
+
def test_new
|
10
|
+
assert_not_nil(IPAdmin::DNS.new(:Domain => 'test.com',
|
11
|
+
:Master => 'srv1.test.com',
|
12
|
+
:Contact => 'root.test.com',
|
13
|
+
:Serial => 306,
|
14
|
+
:Refresh => 800,
|
15
|
+
:Retry => 40,
|
16
|
+
:Expire => 500,
|
17
|
+
:TTL => 600,
|
18
|
+
:NS => ['ns1.test.com','ns2.test.com'] ) )
|
19
|
+
|
20
|
+
assert_raise(RuntimeError){ IPAdmin::DNS.new(:Domain => 'inv@lid.domain.com') }
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_methods
|
24
|
+
ip4 = IPAdmin::IPAddr.new(:IPAddr => '192.168.1.1/29')
|
25
|
+
ip6 = IPAdmin::IPAddr.new(:IPAddr => 'fec0::1/126', :Hostname => 'host6')
|
26
|
+
cidr4 = IPAdmin::CIDR.new(:CIDR => '192.168.1.0/29')
|
27
|
+
cidr6 = IPAdmin::CIDR.new(:CIDR => 'fec0::0/126')
|
28
|
+
|
29
|
+
|
30
|
+
dns = IPAdmin::DNS.new(:Domain => 'test.com',
|
31
|
+
:Master => 'ns1.test.com',
|
32
|
+
:Contact => 'root.test.com',
|
33
|
+
:Serial => 1,
|
34
|
+
:Refresh => 10800,
|
35
|
+
:Retry => 3600,
|
36
|
+
:Expire => 604800,
|
37
|
+
:TTL => 86400,
|
38
|
+
:NS => ['ns1.test.com','ns2.test.com'] )
|
39
|
+
|
40
|
+
assert_equal('192-168-1-1.test.com. IN A 192.168.1.1',dns.address(:IP => ip4) )
|
41
|
+
assert_equal('host6.test.com. IN AAAA fec0::1',dns.address(:IP => ip6) )
|
42
|
+
|
43
|
+
assert_raise(ArgumentError){dns.address()}
|
44
|
+
assert_raise(RuntimeError){dns.address(:IP => '192.168.1.1')}
|
45
|
+
|
46
|
+
ns = dns.ns()
|
47
|
+
assert_equal('test.com. IN NS ns1.test.com.',ns[0] )
|
48
|
+
|
49
|
+
assert_equal(['1 IN PTR 192-168-1-1.test.com.'],
|
50
|
+
dns.ptr(:IP => ip4, :Arpa => IPAdmin.make_arpa(cidr4)) )
|
51
|
+
assert_equal(['1 IN PTR host6.test.com.'],
|
52
|
+
dns.ptr(:IP => ip6, :Arpa => IPAdmin.make_arpa(cidr6)) )
|
53
|
+
|
54
|
+
assert_raise(ArgumentError){dns.ptr()}
|
55
|
+
assert_raise(RuntimeError){dns.ptr(:IP => '192.168.1.1')}
|
56
|
+
|
57
|
+
ptr_list = dns.ptr(:IP => cidr4, :Arpa => IPAdmin.make_arpa(cidr4))
|
58
|
+
assert_equal('0 IN PTR 192-168-1-0.test.com.',ptr_list[0] )
|
59
|
+
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
data/tests/functions_test.rb
CHANGED
@@ -5,7 +5,7 @@ require 'test/unit'
|
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
class
|
8
|
+
class TestFunct < Test::Unit::TestCase
|
9
9
|
|
10
10
|
def test_pack_ipv4_addr
|
11
11
|
assert_equal(2**32-1, IPAdmin.pack_ipv4_addr('255.255.255.255') )
|
@@ -15,6 +15,8 @@ class TestIPAdmin < Test::Unit::TestCase
|
|
15
15
|
def test_pack_ipv4_netmask
|
16
16
|
assert_equal([2**32-1,0], IPAdmin.pack_ipv4_netmask('255.255.255.255') )
|
17
17
|
assert_equal([2**32-1,0], IPAdmin.pack_ipv4_netmask('32') )
|
18
|
+
assert_equal([2**32-1,0], IPAdmin.pack_ipv4_netmask('/32') )
|
19
|
+
assert_equal([2**32-1,0], IPAdmin.pack_ipv4_netmask(32) )
|
18
20
|
end
|
19
21
|
|
20
22
|
|
@@ -26,6 +28,8 @@ class TestIPAdmin < Test::Unit::TestCase
|
|
26
28
|
|
27
29
|
def test_pack_ipv6_netmask
|
28
30
|
assert_equal([2**128-1,0], IPAdmin.pack_ipv6_netmask('128') )
|
31
|
+
assert_equal([2**128-1,0], IPAdmin.pack_ipv6_netmask('/128') )
|
32
|
+
assert_equal([2**128-1,0], IPAdmin.pack_ipv6_netmask(128) )
|
29
33
|
end
|
30
34
|
|
31
35
|
|
@@ -65,6 +69,7 @@ class TestIPAdmin < Test::Unit::TestCase
|
|
65
69
|
assert_equal(1, IPAdmin.validate_ipv4_netmask('255.255.255.0') )
|
66
70
|
assert_equal(1, IPAdmin.validate_ipv4_netmask('128.0.0.0') )
|
67
71
|
assert_equal(1, IPAdmin.validate_ipv4_netmask('32') )
|
72
|
+
assert_equal(1, IPAdmin.validate_ipv4_netmask('/32') )
|
68
73
|
assert_equal(1, IPAdmin.validate_ipv4_netmask(32) )
|
69
74
|
assert_equal(1, IPAdmin.validate_ipv4_netmask('1') )
|
70
75
|
assert_raise(RuntimeError){ IPAdmin.validate_ipv4_netmask('192.255.255.0') }
|
@@ -93,6 +98,7 @@ class TestIPAdmin < Test::Unit::TestCase
|
|
93
98
|
def test_validate_ipv6_netmask
|
94
99
|
assert_equal(1, IPAdmin.validate_ipv6_netmask('1') )
|
95
100
|
assert_equal(1, IPAdmin.validate_ipv6_netmask('128') )
|
101
|
+
assert_equal(1, IPAdmin.validate_ipv6_netmask('/128') )
|
96
102
|
assert_equal(1, IPAdmin.validate_ipv6_netmask(128) )
|
97
103
|
assert_raise(RuntimeError){ IPAdmin.validate_ipv6_netmask('0') }
|
98
104
|
assert_raise(RuntimeError){ IPAdmin.validate_ipv6_netmask('129') }
|
@@ -167,6 +173,27 @@ class TestIPAdmin < Test::Unit::TestCase
|
|
167
173
|
assert_raise(RuntimeError){ IPAdmin.range(:Boundaries => [1,2]) }
|
168
174
|
end
|
169
175
|
|
176
|
+
def test_make_arpa
|
177
|
+
ip4 = IPAdmin::IPAddr.new(:IPAddr => '192.168.1.0/24')
|
178
|
+
cidr4 = IPAdmin::CIDR.new(:CIDR => '192.168.1.0/24')
|
179
|
+
cidr6 = IPAdmin::CIDR.new(:CIDR => 'fe80::0/64')
|
180
|
+
assert_equal('0.1.168.192.in-addr.arpa.', IPAdmin.make_arpa(ip4) )
|
181
|
+
assert_equal('1.168.192.in-addr.arpa.', IPAdmin.make_arpa(cidr4) )
|
182
|
+
assert_equal('0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa.', IPAdmin.make_arpa(cidr6) )
|
183
|
+
assert_raise(ArgumentError){ IPAdmin.make_arpa('192.168.1.0/24') }
|
184
|
+
end
|
185
|
+
|
186
|
+
def test_v6_short
|
187
|
+
assert_equal('fec0::', IPAdmin.v6_short('fec0:0000:0000:0000:0000:0000:0000:0000') )
|
188
|
+
assert_equal('fec0::2:0:0:1', IPAdmin.v6_short('fec0:0000:0000:0000:0002:0000:0000:0001') )
|
189
|
+
|
190
|
+
assert_raise(ArgumentError){ IPAdmin.make_arpa('fec0::') }
|
191
|
+
assert_raise(ArgumentError){ IPAdmin.make_arpa('192.168.1.1') }
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
170
197
|
end
|
171
198
|
|
172
199
|
|
data/tests/ipaddr_test.rb
CHANGED
@@ -5,7 +5,7 @@ require 'test/unit'
|
|
5
5
|
|
6
6
|
|
7
7
|
|
8
|
-
class
|
8
|
+
class TestIPAddr < Test::Unit::TestCase
|
9
9
|
|
10
10
|
def test_new
|
11
11
|
assert_not_nil(IPAdmin::IPAddr.new(:IPAddr => '192.168.1.0/24') )
|
@@ -16,7 +16,7 @@ class TestCIDR < Test::Unit::TestCase
|
|
16
16
|
assert_raise(RuntimeError){ IPAdmin::IPAddr.new(:IPAddr => 'fec0::1/129') }
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def test_methods
|
20
20
|
ip4 = IPAdmin::IPAddr.new(:IPAddr => '192.168.1.1/24')
|
21
21
|
ip6 = IPAdmin::IPAddr.new(:IPAddr => 'fec0::1/64')
|
22
22
|
|
@@ -35,8 +35,11 @@ class TestCIDR < Test::Unit::TestCase
|
|
35
35
|
assert_equal('192.168.1.1',ip4.ip() )
|
36
36
|
assert_equal('fec0:0000:0000:0000:0000:0000:0000:0001',ip6.ip() )
|
37
37
|
|
38
|
-
assert_equal(24,ip4.netmask() )
|
39
|
-
assert_equal(64,ip6.netmask() )
|
38
|
+
assert_equal('/24',ip4.netmask() )
|
39
|
+
assert_equal('/64',ip6.netmask() )
|
40
|
+
|
41
|
+
assert_equal(24,ip4.bits() )
|
42
|
+
assert_equal(64,ip6.bits() )
|
40
43
|
|
41
44
|
assert_equal('255.255.255.0',ip4.netmask_ext() )
|
42
45
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ipadmin
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2006-01
|
6
|
+
version: 0.1.2
|
7
|
+
date: 2006-02-01 00:00:00 -06:00
|
8
8
|
summary: A package for manipulating IPv4/IPv6 address space.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -36,6 +36,7 @@ test_files:
|
|
36
36
|
- tests/functions_test.rb
|
37
37
|
- tests/cidr_test.rb
|
38
38
|
- tests/cidr_table_test.rb
|
39
|
+
- tests/dns_test.rb
|
39
40
|
rdoc_options: []
|
40
41
|
extra_rdoc_files:
|
41
42
|
- README
|