network-utility 1.1.54 → 1.1.55
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.
- checksums.yaml +4 -4
- data/network.rb +2 -1
- data/utility/asnum.rb +62 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: afe54f51c35693417b60963bca704bf98dfbea6edc2f307436d3efac387c1dcb
|
|
4
|
+
data.tar.gz: 2400d7b9ac39b26c17b4763569c1ef08328bb656a1c3ef28da43b7ad1f86b0ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ebcdf21101d347a2610b94bd4826beb16bea84b5e5c30042f778d82dedb0022eb7150a8710fbb0428033228c288ed177d653f996a996522f8a078a68513e61d6
|
|
7
|
+
data.tar.gz: f6c5eda9a587d1f8676d05edbb589bd31c64a2fb454537f2c7564fd355a843fa2ca5dbef43524ac9c75d3452ba1eede9817223aeb7f0002c56c23f7509ed2742
|
data/network.rb
CHANGED
data/utility/asnum.rb
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#coding:utf-8
|
|
2
|
+
|
|
3
|
+
=begin # MD
|
|
4
|
+
<< 16位AS号(2字节,传统)>>
|
|
5
|
+
|
|
6
|
+
| 类型 | 范围 | 说明 |
|
|
7
|
+
| --------- | ----------------- | --------------------------- |
|
|
8
|
+
| **公有AS号** | **1 – 64511** | 全球互联网可路由,需向RIR(区域互联网注册机构)申请 |
|
|
9
|
+
| **私有AS号** | **64512 – 65534** | 仅用于内部网络,不可通告到公网 |
|
|
10
|
+
| **保留** | 65535 | 保留用于文档和特殊用途 |
|
|
11
|
+
|
|
12
|
+
特殊保留:AS 0(保留)、AS 23456(AS_TRANS,用于16位与32位互通过渡)
|
|
13
|
+
|
|
14
|
+
<< 32位AS号(4字节,RFC 4893/6793)>>
|
|
15
|
+
|
|
16
|
+
| 类型 | 范围 | 说明 |
|
|
17
|
+
| --------- | --------------------------------- | ------------- |
|
|
18
|
+
| **公有AS号** | **65536 – 4,199,999,999** | 全球可路由(约42亿个) |
|
|
19
|
+
| **私有AS号** | **4,200,000,000 – 4,294,967,294** | 内部使用(约9500万个) |
|
|
20
|
+
| **保留** | 4,294,967,295 | 保留(相当于32位全1) |
|
|
21
|
+
=end
|
|
22
|
+
|
|
23
|
+
class String
|
|
24
|
+
def is_public_as?
|
|
25
|
+
if !self.match(/^\d+\.{0,1}\d+$/)
|
|
26
|
+
return "Invalid AS number #{self}"
|
|
27
|
+
elsif self.include?('.')
|
|
28
|
+
left,right = self.split('.')
|
|
29
|
+
num = eval("0b"+[left.to_i,right.to_i].map{|n|"%016b" % n}.join(''))
|
|
30
|
+
return true if num.between?(65536,4199999999)
|
|
31
|
+
else
|
|
32
|
+
return true if self.to_i.between?(1,64511)
|
|
33
|
+
end
|
|
34
|
+
return false
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def is_private_as?
|
|
38
|
+
if !self.match(/^\d+\.{0,1}\d+$/)
|
|
39
|
+
return "Invalid AS number #{self}"
|
|
40
|
+
elsif self.include?('.')
|
|
41
|
+
left,right = self.split('.')
|
|
42
|
+
num = eval("0b"+[left.to_i,right.to_i].map{|n|"%016b" % n}.join(''))
|
|
43
|
+
return true if num.between?(4_200_000_000, 4_294_967_294)
|
|
44
|
+
else
|
|
45
|
+
return true if self.to_i.between?(64512,65534)
|
|
46
|
+
end
|
|
47
|
+
return false
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def is_reserved_as?
|
|
51
|
+
if !self.match(/^\d+\.{0,1}\d+$/)
|
|
52
|
+
return "Invalid AS number #{self}"
|
|
53
|
+
elsif self.include?('.')
|
|
54
|
+
left,right = self.split('.')
|
|
55
|
+
num = eval("0b"+[left.to_i,right.to_i].map{|n|"%016b" % n}.join(''))
|
|
56
|
+
return true if num==4_294_967_295
|
|
57
|
+
else
|
|
58
|
+
return true if [0,23456].include?(self.to_i)
|
|
59
|
+
end
|
|
60
|
+
return false
|
|
61
|
+
end
|
|
62
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: network-utility
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.55
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt
|
|
@@ -258,6 +258,7 @@ files:
|
|
|
258
258
|
- document/vpn-ZXCTN9000-8EA.md
|
|
259
259
|
- network.rb
|
|
260
260
|
- support/snmp.rb
|
|
261
|
+
- utility/asnum.rb
|
|
261
262
|
- utility/ipv4_address.rb
|
|
262
263
|
- utility/ipv6_address.rb
|
|
263
264
|
- utility/mac_address.rb
|