ipaddress_2 0.11.1 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/VERSION +1 -1
- data/lib/ipaddress_2/ipv6.rb +74 -0
- data/lib/ipaddress_2/version.rb +1 -1
- data/test/ipaddress_2/ipv6_test.rb +45 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6c14a053c2c3ae5bbf8f4daf54df76a221ece84a46fc3297159c6751ff45746
|
4
|
+
data.tar.gz: 13b69795534a2f0f46332c563348de881430a4b432e6cbf9ef7385861ea8b6d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee9429ddb8b2c69b036eabf72159c32ad8d3babc42bbdc747c12029422ddaf3e97c5b6c2daff8cf8ed4aab40db7a4a4995152093f29a6c3d0200fcb06f7c6900
|
7
|
+
data.tar.gz: '08ec5f9867b28c8073b9f06c39e15019479762e22892d7822917dde03f835b86b268dd3df6a1570d2e1f28a15c391b39f02740f707187f9fb1204d167b9e2f31'
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.12.0
|
data/lib/ipaddress_2/ipv6.rb
CHANGED
@@ -246,6 +246,63 @@ module IPAddress;
|
|
246
246
|
to_u128 | @prefix.to_u128 == @prefix.to_u128
|
247
247
|
end
|
248
248
|
|
249
|
+
#
|
250
|
+
# Returns a new IPv6 object with the
|
251
|
+
# first host IP address in the range.
|
252
|
+
#
|
253
|
+
# Example: given the 2001:db8:8:800::/64 network, the first
|
254
|
+
# host IP address is 2001:db8:8:800::
|
255
|
+
#
|
256
|
+
# ip = IPAddress("2001:db8:8:800::/64")
|
257
|
+
#
|
258
|
+
# ip.first.to_s
|
259
|
+
# #=> "2001:db8:8:800::"
|
260
|
+
#
|
261
|
+
# The object IP doesn't need to be a network: the method
|
262
|
+
# automatically gets the network number from it
|
263
|
+
#
|
264
|
+
# ip = IPAddress("2001:db8:9:800::2/64")
|
265
|
+
#
|
266
|
+
# ip.first.to_s
|
267
|
+
# #=> "2001:db8:9:800::"
|
268
|
+
#
|
269
|
+
def first
|
270
|
+
if prefix == 128
|
271
|
+
return self
|
272
|
+
else
|
273
|
+
IPAddress::IPv6::parse_u128(network_u128)
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
#
|
278
|
+
# Like its sibling method IPv4#first, this method
|
279
|
+
# returns a new IPv4 object with the
|
280
|
+
# last host IP address in the range.
|
281
|
+
#
|
282
|
+
# Example: given the 192.168.100.0/24 network, the last
|
283
|
+
# host IP address is 192.168.100.254
|
284
|
+
#
|
285
|
+
# ip = IPAddress("2001:db8:8:800::/64")
|
286
|
+
#
|
287
|
+
# ip.last.to_s
|
288
|
+
# #=> "2001:db8:8:800:ffff:ffff:ffff:ffff"
|
289
|
+
#
|
290
|
+
# The object IP doesn't need to be a network: the method
|
291
|
+
# automatically gets the network number from it
|
292
|
+
#
|
293
|
+
# ip = IPAddress("2001:db8:9:800::2/64")
|
294
|
+
#
|
295
|
+
# ip.last.to_s
|
296
|
+
# #=> "2001:db8:9:800:ffff:ffff:ffff:ffff"
|
297
|
+
#
|
298
|
+
def last
|
299
|
+
if prefix == 128
|
300
|
+
return self
|
301
|
+
else
|
302
|
+
IPAddress::IPv6::parse_u128(broadcast_u128)
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
249
306
|
#
|
250
307
|
# Returns the 16-bits value specified by index
|
251
308
|
#
|
@@ -771,6 +828,23 @@ module IPAddress;
|
|
771
828
|
self.class.parse_u128(network_u128, @prefix)
|
772
829
|
end
|
773
830
|
|
831
|
+
#
|
832
|
+
# Returns the broadcast address for the given IP.
|
833
|
+
# As this is IPv6 it is just the last IP
|
834
|
+
#
|
835
|
+
# ip = IPAddress("2001:db8:8:800::/64")
|
836
|
+
#
|
837
|
+
# ip.broadcast.to_s
|
838
|
+
# #=> "2001:db8:8:800::"
|
839
|
+
#
|
840
|
+
def broadcast
|
841
|
+
if prefix == 128
|
842
|
+
return self
|
843
|
+
else
|
844
|
+
IPAddress::IPv6::parse_u128(broadcast_u128)
|
845
|
+
end
|
846
|
+
end
|
847
|
+
|
774
848
|
#
|
775
849
|
# Extract 16 bits groups from a string
|
776
850
|
#
|
data/lib/ipaddress_2/version.rb
CHANGED
@@ -128,6 +128,36 @@ class IPv6Test < Minitest::Test
|
|
128
128
|
assert_equal bits, @ip.bits
|
129
129
|
end
|
130
130
|
|
131
|
+
def test_method_first
|
132
|
+
ip = @klass.new("2001:db8:8:800::/64")
|
133
|
+
assert_instance_of @klass, ip.first
|
134
|
+
assert_equal "2001:db8:8:800::", ip.first.to_s
|
135
|
+
ip = @klass.new("2001:db8:8::/48")
|
136
|
+
assert_instance_of @klass, ip.first
|
137
|
+
assert_equal "2001:db8:8::", ip.first.to_s
|
138
|
+
ip = @klass.new("2001:db8::/32")
|
139
|
+
assert_instance_of @klass, ip.first
|
140
|
+
assert_equal "2001:db8::", ip.first.to_s
|
141
|
+
ip = @klass.new("2001:db8::8:800:200c:417a/64")
|
142
|
+
assert_instance_of @klass, ip.first
|
143
|
+
assert_equal "2001:db8::", ip.first.to_s
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_method_last
|
147
|
+
ip = @klass.new("2001:db8:8:800::/64")
|
148
|
+
assert_instance_of @klass, ip.last
|
149
|
+
assert_equal "2001:db8:8:800:ffff:ffff:ffff:ffff", ip.last.to_s
|
150
|
+
ip = @klass.new("2001:db8:8::/48")
|
151
|
+
assert_instance_of @klass, ip.last
|
152
|
+
assert_equal "2001:db8:8:ffff:ffff:ffff:ffff:ffff", ip.last.to_s
|
153
|
+
ip = @klass.new("2001:db8::/32")
|
154
|
+
assert_instance_of @klass, ip.last
|
155
|
+
assert_equal "2001:db8:ffff:ffff:ffff:ffff:ffff:ffff", ip.last.to_s
|
156
|
+
ip = @klass.new("2001:db8::8:800:200c:417a/64")
|
157
|
+
assert_instance_of @klass, ip.last
|
158
|
+
assert_equal "2001:db8::ffff:ffff:ffff:ffff", ip.last.to_s
|
159
|
+
end
|
160
|
+
|
131
161
|
def test_method_prefix=()
|
132
162
|
ip = @klass.new "2001:db8::8:800:200c:417a"
|
133
163
|
assert_equal 128, ip.prefix
|
@@ -399,6 +429,21 @@ class IPv6Test < Minitest::Test
|
|
399
429
|
end
|
400
430
|
end
|
401
431
|
|
432
|
+
def test_method_broadcast
|
433
|
+
ip = @klass.new("2001:db8:8:800::/64")
|
434
|
+
assert_instance_of @klass, ip.broadcast
|
435
|
+
assert_equal "2001:db8:8:800:ffff:ffff:ffff:ffff", ip.broadcast.to_s
|
436
|
+
ip = @klass.new("2001:db8:8::/48")
|
437
|
+
assert_instance_of @klass, ip.broadcast
|
438
|
+
assert_equal "2001:db8:8:ffff:ffff:ffff:ffff:ffff", ip.broadcast.to_s
|
439
|
+
ip = @klass.new("2001:db8::/32")
|
440
|
+
assert_instance_of @klass, ip.broadcast
|
441
|
+
assert_equal "2001:db8:ffff:ffff:ffff:ffff:ffff:ffff", ip.broadcast.to_s
|
442
|
+
ip = @klass.new("2001:db8::8:800:200c:417a/64")
|
443
|
+
assert_instance_of @klass, ip.broadcast
|
444
|
+
assert_equal "2001:db8::ffff:ffff:ffff:ffff", ip.broadcast.to_s
|
445
|
+
end
|
446
|
+
|
402
447
|
def test_method_network
|
403
448
|
@networks.each do |addr,net|
|
404
449
|
ip = @klass.new addr
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ipaddress_2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bluemonk
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|