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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/network.rb +2 -1
  3. data/utility/asnum.rb +62 -0
  4. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b08168b799b704a07f26d7b675994d7e8e6e8c80dfb68900d585c50555c88250
4
- data.tar.gz: 4d111225c383dd1854e1f134f8edf6eb05838d2e5a8fbefd40140e97482230a0
3
+ metadata.gz: afe54f51c35693417b60963bca704bf98dfbea6edc2f307436d3efac387c1dcb
4
+ data.tar.gz: 2400d7b9ac39b26c17b4763569c1ef08328bb656a1c3ef28da43b7ad1f86b0ae
5
5
  SHA512:
6
- metadata.gz: 5afa4ffb602aedf0b3f6336c003ec4fdfe8cbde6917502aa302d8dcd7e71b83a709d2661880419f926f215282afb951eff8632622bf42da24cfa93fa29d6267c
7
- data.tar.gz: ad055634f4177aa38a5563bca0345b0858552349c2bbc8ea57879e7c503f0077159b8d83384d13a0ea3fcfb8020a42f90ea45ef78c61f6f9772673a952f7500d
6
+ metadata.gz: ebcdf21101d347a2610b94bd4826beb16bea84b5e5c30042f778d82dedb0022eb7150a8710fbb0428033228c288ed177d653f996a996522f8a078a68513e61d6
7
+ data.tar.gz: f6c5eda9a587d1f8676d05edbb589bd31c64a2fb454537f2c7564fd355a843fa2ca5dbef43524ac9c75d3452ba1eede9817223aeb7f0002c56c23f7509ed2742
data/network.rb CHANGED
@@ -6,6 +6,7 @@
6
6
  'mac_address',
7
7
  'netmerge',
8
8
  'route',
9
+ 'asnum',
9
10
  'whitelist'
10
11
  ].each{|mod|require "utility/#{mod}"}
11
12
 
@@ -22,5 +23,5 @@
22
23
  ].each{|mod|require mod}
23
24
 
24
25
  module Network
25
- VERSION = '1.1.54'
26
+ VERSION = '1.1.55'
26
27
  end
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.54
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