network-utility 1.1.4
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 +7 -0
- data/README.md +2 -0
- data/document/acl-M6000-16E.md +27 -0
- data/document/acl-M6000-18S.md +27 -0
- data/document/acl-M6000-8.md +27 -0
- data/document/acl-M6000-8E.md +27 -0
- data/document/acl-MA5200G-8.md +204 -0
- data/document/acl-ME60-16.md +177 -0
- data/document/acl-ME60-X16.md +177 -0
- data/document/acl-NE40E-X16.md +204 -0
- data/document/acl-NE40E-X16A.md +204 -0
- data/document/acl-NE40E-X8.md +204 -0
- data/document/acl-NE40E.md +204 -0
- data/document/acl-NE5000E-20.md +25 -0
- data/document/acl-NE5000E-X16.md +25 -0
- data/document/acl-NE5000E-X16A.md +25 -0
- data/document/acl-NE80E.md +204 -0
- data/document/bgp-CR16010H-F.md +25 -0
- data/document/bgp-CR16018-F.md +25 -0
- data/document/bgp-CR19000-20.md +25 -0
- data/document/bgp-M6000-16E.md +25 -0
- data/document/bgp-M6000-18S.md +25 -0
- data/document/bgp-M6000-8.md +25 -0
- data/document/bgp-M6000-8E.md +25 -0
- data/document/bgp-MA5200G-8.md +25 -0
- data/document/bgp-ME60-16.md +25 -0
- data/document/bgp-ME60-X16.md +25 -0
- data/document/bgp-NE40E-X16.md +25 -0
- data/document/bgp-NE40E-X16A.md +25 -0
- data/document/bgp-NE40E-X8.md +25 -0
- data/document/bgp-NE40E.md +25 -0
- data/document/bgp-NE5000E-20.md +25 -0
- data/document/bgp-NE5000E-X16.md +25 -0
- data/document/bgp-NE5000E-X16A.md +25 -0
- data/document/bgp-NE80E.md +25 -0
- data/document/config.md +1153 -0
- data/document/document.rb +27 -0
- data/document/if-ALCATEL7750.md +48 -0
- data/document/if-C7609.md +47 -0
- data/document/if-CR16010H-F.md +300 -0
- data/document/if-CR16018-F.md +300 -0
- data/document/if-CR19000-20.md +300 -0
- data/document/if-CRS-16.md +47 -0
- data/document/if-CX600-X16A.md +349 -0
- data/document/if-CX600-X8A.md +349 -0
- data/document/if-M6000-16E.md +652 -0
- data/document/if-M6000-18S.md +846 -0
- data/document/if-M6000-8.md +653 -0
- data/document/if-M6000-8E.md +653 -0
- data/document/if-MA5200G-8.md +357 -0
- data/document/if-ME60-16.md +357 -0
- data/document/if-ME60-X16.md +357 -0
- data/document/if-NE40E-X16.md +357 -0
- data/document/if-NE40E-X16A.md +357 -0
- data/document/if-NE40E-X8.md +357 -0
- data/document/if-NE40E.md +357 -0
- data/document/if-NE5000E-20.md +357 -0
- data/document/if-NE5000E-X16.md +357 -0
- data/document/if-NE5000E-X16A.md +357 -0
- data/document/if-NE8000E-X8.md +357 -0
- data/document/if-NE80E.md +357 -0
- data/document/if-NE8100-X8.md +357 -0
- data/document/if-Nokia7750.md +48 -0
- data/document/if-T8000-18.md +653 -0
- data/document/if-V6000.md +663 -0
- data/document/if-VNE9000.md +357 -0
- data/document/if-ZXCTN9000-18EA.md +762 -0
- data/document/if-ZXCTN9000-8EA.md +762 -0
- data/document/lic-M6000-16E.md +28 -0
- data/document/lic-M6000-18S.md +28 -0
- data/document/lic-M6000-8.md +28 -0
- data/document/lic-M6000-8E.md +28 -0
- data/document/lic-MA5200G-8.md +27 -0
- data/document/lic-ME60-16.md +27 -0
- data/document/lic-ME60-X16.md +27 -0
- data/document/lic-NE40E-X16.md +27 -0
- data/document/lic-NE40E-X16A.md +27 -0
- data/document/lic-NE40E-X8.md +27 -0
- data/document/log-M6000-16E.md +36 -0
- data/document/log-M6000-18S.md +36 -0
- data/document/log-M6000-8.md +36 -0
- data/document/log-M6000-8E.md +36 -0
- data/document/log-MA5200G-8.md +61 -0
- data/document/log-ME60-16.md +61 -0
- data/document/log-ME60-X16.md +61 -0
- data/document/log-NE40E-X16.md +61 -0
- data/document/log-NE40E-X16A.md +61 -0
- data/document/log-NE40E-X8.md +61 -0
- data/document/log-NE40E.md +61 -0
- data/document/log-NE5000E-20.md +61 -0
- data/document/log-NE5000E-X16.md +61 -0
- data/document/log-NE5000E-X16A.md +61 -0
- data/document/log-NE80E.md +61 -0
- data/document/nat-CR16010H-F.md +27 -0
- data/document/nat-CR16018-F.md +27 -0
- data/document/nat-M6000-16E.md +27 -0
- data/document/nat-M6000-18S.md +27 -0
- data/document/nat-M6000-8.md +27 -0
- data/document/nat-M6000-8E.md +27 -0
- data/document/nat-ME60-16.md +44 -0
- data/document/nat-ME60-X16.md +44 -0
- data/document/nat-NE40E-X16.md +44 -0
- data/document/nat-NE40E-X16A.md +44 -0
- data/document/policy-M6000-16E.md +13 -0
- data/document/policy-M6000-18S.md +13 -0
- data/document/policy-M6000-8.md +13 -0
- data/document/policy-M6000-8E.md +13 -0
- data/document/policy-MA5200G-8.md +87 -0
- data/document/policy-ME60-16.md +87 -0
- data/document/policy-ME60-X16.md +87 -0
- data/document/policy-NE40E-X16.md +87 -0
- data/document/policy-NE40E-X16A.md +87 -0
- data/document/policy-NE40E-X8.md +87 -0
- data/document/policy-NE40E.md +87 -0
- data/document/policy-NE5000E-20.md +87 -0
- data/document/policy-NE5000E-X16.md +87 -0
- data/document/policy-NE5000E-X16A.md +87 -0
- data/document/policy-NE80E.md +87 -0
- data/document/pool-M6000-16E.md +126 -0
- data/document/pool-M6000-18S.md +126 -0
- data/document/pool-M6000-8.md +126 -0
- data/document/pool-M6000-8E.md +126 -0
- data/document/pool-MA5200G-8.md +138 -0
- data/document/pool-ME60-16.md +138 -0
- data/document/pool-ME60-X16.md +138 -0
- data/document/pool-NE40E-X16.md +138 -0
- data/document/pool-NE40E-X16A.md +138 -0
- data/document/pool-NE40E-X8.md +138 -0
- data/document/pool-NE40E.md +138 -0
- data/document/pool-NE80E.md +138 -0
- data/document/static-CR16010H-F.md +60 -0
- data/document/static-CR16018-F.md +60 -0
- data/document/static-CR19000-20.md +60 -0
- data/document/static-CX600-X16A.md +26 -0
- data/document/static-CX600-X8A.md +26 -0
- data/document/static-M6000-16E.md +104 -0
- data/document/static-M6000-18S.md +104 -0
- data/document/static-M6000-8.md +104 -0
- data/document/static-M6000-8E.md +104 -0
- data/document/static-MA5200G-8.md +82 -0
- data/document/static-ME60-16.md +82 -0
- data/document/static-ME60-X16.md +82 -0
- data/document/static-NE40E-X16.md +82 -0
- data/document/static-NE40E-X16A.md +81 -0
- data/document/static-NE40E-X8.md +82 -0
- data/document/static-NE40E.md +67 -0
- data/document/static-NE5000E-20.md +67 -0
- data/document/static-NE5000E-X16.md +67 -0
- data/document/static-NE5000E-X16A.md +67 -0
- data/document/static-NE8000E-X8.md +26 -0
- data/document/static-NE80E.md +67 -0
- data/document/static-NE8100-X8.md +26 -0
- data/document/static-T8000-18.md +34 -0
- data/document/static-ZXCTN9000-18EA.md +34 -0
- data/document/static-ZXCTN9000-8EA.md +34 -0
- data/document/system-M6000-16E.md +75 -0
- data/document/system-M6000-18S.md +76 -0
- data/document/system-M6000-8.md +75 -0
- data/document/system-M6000-8E.md +75 -0
- data/document/system-MA5200G-8.md +51 -0
- data/document/system-ME60-16.md +51 -0
- data/document/system-ME60-X16.md +51 -0
- data/document/system-NE40E-X16.md +51 -0
- data/document/system-NE40E-X16A.md +51 -0
- data/document/system-NE40E-X8.md +51 -0
- data/document/system-NE40E.md +51 -0
- data/document/system-NE5000E-20.md +51 -0
- data/document/system-NE5000E-X16.md +51 -0
- data/document/system-NE5000E-X16A.md +51 -0
- data/document/system-NE80E.md +51 -0
- data/document/telnet.md +332 -0
- data/network.rb +24 -0
- data/utility/ipv4_address.rb +266 -0
- data/utility/ipv6_address.rb +201 -0
- data/utility/mac_address.rb +77 -0
- data/utility/netmerge.rb +46 -0
- data/utility/route.rb +79 -0
- data/utility/whitelist.rb +21 -0
- metadata +258 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
|
2
|
+
# NE40E-X16A 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X16A', '静态路由']
|
6
|
+
|
7
|
+
module NE40E_X16A
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE40E-X16A', '静态用户地址']
|
30
|
+
@sign << ['NE40E-X16A', '静态接口地址']
|
31
|
+
@sign << ['NE40E-X16A', '静态域地址']
|
32
|
+
|
33
|
+
module NE40E_X16A
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
pools = *guards
|
65
|
+
pools.each do|dname|
|
66
|
+
content = raw.split("display access-user domain #{dname}")[1].to_s.split('<HB-')[0].to_s
|
67
|
+
textlist = content.split('------------------------------------------------------------------------------')[2].to_s
|
68
|
+
textlist.split("\n").each do|line|
|
69
|
+
item = line.strip.split(' ')
|
70
|
+
if item.size == 3
|
71
|
+
tab[-1] += item
|
72
|
+
else
|
73
|
+
tab << item
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
return tab
|
79
|
+
end
|
80
|
+
end
|
81
|
+
```
|
@@ -0,0 +1,82 @@
|
|
1
|
+
|
2
|
+
# NE40E-X8 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X8', '静态路由']
|
6
|
+
|
7
|
+
module NE40E_X8
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE40E-X8', '静态用户地址']
|
30
|
+
@sign << ['NE40E-X8', '静态接口地址']
|
31
|
+
@sign << ['NE40E-X8', '静态域地址']
|
32
|
+
|
33
|
+
module NE40E_X8
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
pools = *guards
|
65
|
+
pools.each do|dname|
|
66
|
+
|
67
|
+
content = raw.split("display access-user domain #{dname}")[1].to_s.split('<HB-')[0].to_s
|
68
|
+
textlist = content.split('------------------------------------------------------------------------------')[2].to_s
|
69
|
+
textlist.split("\n").each do|line|
|
70
|
+
item = line.strip.split(' ')
|
71
|
+
if item.size == 3
|
72
|
+
tab[-1] += item
|
73
|
+
else
|
74
|
+
tab << item
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
return tab
|
80
|
+
end
|
81
|
+
end
|
82
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
# NE40E 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E', '静态路由']
|
6
|
+
|
7
|
+
module NE40E
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE40E', '静态用户地址']
|
30
|
+
@sign << ['NE40E', '静态接口地址']
|
31
|
+
@sign << ['NE40E', '静态域地址', 'NOT SUPPORT']
|
32
|
+
|
33
|
+
module NE40E
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
# NOT SUPPORT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
# NE5000E-20 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE5000E-20', '静态路由']
|
6
|
+
|
7
|
+
module NE5000E_20
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE5000E-20', '静态用户地址']
|
30
|
+
@sign << ['NE5000E-20', '静态接口地址']
|
31
|
+
@sign << ['NE5000E-20', '静态域地址', 'NOT SUPPORT']
|
32
|
+
|
33
|
+
module NE5000E_20
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
# NOT SUPPORT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
# NE5000E-X16 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE5000E-X16', '静态路由']
|
6
|
+
|
7
|
+
module NE5000E_X16
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE5000E-X16', '静态用户地址']
|
30
|
+
@sign << ['NE5000E-X16', '静态接口地址']
|
31
|
+
@sign << ['NE5000E-X16', '静态域地址', 'NOT SUPPORT']
|
32
|
+
|
33
|
+
module NE5000E_X16
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
# NOT SUPPORT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
# NE5000E-X16A 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE5000E-X16A', '静态路由']
|
6
|
+
|
7
|
+
module NE5000E_X16A
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE5000E-X16A', '静态用户地址']
|
30
|
+
@sign << ['NE5000E-X16A', '静态接口地址']
|
31
|
+
@sign << ['NE5000E-X16A', '静态域地址', 'NOT SUPPORT']
|
32
|
+
|
33
|
+
module NE5000E_X16A
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
# NOT SUPPORT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
# NE8000E-X8 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE8000E-X8', '静态路由']
|
6
|
+
|
7
|
+
module NE8000E_X8
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
# NE80E 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE80E', '静态路由']
|
6
|
+
|
7
|
+
module NE80E
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
@sign << ['NE80E', '静态用户地址']
|
30
|
+
@sign << ['NE80E', '静态接口地址']
|
31
|
+
@sign << ['NE80E', '静态域地址', 'NOT SUPPORT']
|
32
|
+
|
33
|
+
module NE80E
|
34
|
+
module_function
|
35
|
+
|
36
|
+
def 静态用户地址 conf
|
37
|
+
tab = []
|
38
|
+
(conf['static-user'] || []).each do|part|
|
39
|
+
part.split("\n").each do|line|
|
40
|
+
words = line.split(' ')
|
41
|
+
tab << words
|
42
|
+
end
|
43
|
+
end
|
44
|
+
tab
|
45
|
+
end
|
46
|
+
|
47
|
+
def 静态接口地址 raw,*guards
|
48
|
+
tab = []
|
49
|
+
content = raw.split('display arp all')[1].to_s.split('<')[0].to_s
|
50
|
+
textlist = content.split('------------------------------------------------------------------------------')[1].to_s
|
51
|
+
textlist.split("\n").each do|line|
|
52
|
+
item = line.strip.split(' ')
|
53
|
+
if item.size == 1
|
54
|
+
tab[-1] += item
|
55
|
+
else
|
56
|
+
tab << item
|
57
|
+
end
|
58
|
+
end
|
59
|
+
return tab
|
60
|
+
end
|
61
|
+
|
62
|
+
def 静态域地址 raw,*guards
|
63
|
+
tab = []
|
64
|
+
# NOT SUPPORT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
# NE8100-X8 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE8100-X8', '静态路由']
|
6
|
+
|
7
|
+
module NE8100_X8
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).each do|part|
|
14
|
+
if part.include?('route-static')
|
15
|
+
part.split("\n").each do|line|
|
16
|
+
items = line.split(" ")
|
17
|
+
record = items[2].include?('vpn-') ? ["static:#{items[3]}"]+items[4..-1] : ["static"]+items[2..-1]
|
18
|
+
static_routes << record
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return static_routes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
```
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
# T8000-18 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['T8000-18', '静态路由']
|
6
|
+
|
7
|
+
module T8000_18
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['static','ipv6-static-route'].each do|tag|
|
13
|
+
lines = (配置散列[tag] || "").split("\n")
|
14
|
+
lines.each_with_index do|line,index|
|
15
|
+
next unless line.include?('route ')
|
16
|
+
if line.size==80 && lines[index+1][0..1]!='ip'
|
17
|
+
items = (line+lines[index+1]).split(" ")
|
18
|
+
else
|
19
|
+
items = line.split(" ")
|
20
|
+
end
|
21
|
+
if items[2].include?('vrf')
|
22
|
+
head = "static:#{items[3]}"
|
23
|
+
tail = items[4].include?(':') ? items[4].split('/')+items[5..-1] : items[4..-1]
|
24
|
+
else
|
25
|
+
head = "static"
|
26
|
+
tail = items[2].include?(':') ? items[2].split('/')+items[3..-1] : items[2..-1]
|
27
|
+
end
|
28
|
+
static_routes << [head]+tail
|
29
|
+
end
|
30
|
+
end
|
31
|
+
return static_routes
|
32
|
+
end
|
33
|
+
end
|
34
|
+
```
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
# ZXCTN9000-18EA
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ZXCTN9000-18EA', '静态路由']
|
6
|
+
|
7
|
+
module ZXCTN9000_18EA
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['static','ipv6-static-route'].each do|tag|
|
13
|
+
lines = (配置散列[tag] || "").split("\n")
|
14
|
+
lines.each_with_index do|line,index|
|
15
|
+
next unless line.include?('route ')
|
16
|
+
if line.size==80 && lines[index+1][0..1]!='ip'
|
17
|
+
items = (line+lines[index+1]).split(" ")
|
18
|
+
else
|
19
|
+
items = line.split(" ")
|
20
|
+
end
|
21
|
+
if items[2].include?('vrf')
|
22
|
+
head = "static:#{items[3]}"
|
23
|
+
tail = items[4].include?(':') ? items[4].split('/')+items[5..-1] : items[4..-1]
|
24
|
+
else
|
25
|
+
head = "static"
|
26
|
+
tail = items[2].include?(':') ? items[2].split('/')+items[3..-1] : items[2..-1]
|
27
|
+
end
|
28
|
+
static_routes << [head]+tail
|
29
|
+
end
|
30
|
+
end
|
31
|
+
return static_routes
|
32
|
+
end
|
33
|
+
end
|
34
|
+
```
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
# ZXCTN9000-8EA
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ZXCTN9000-8EA', '静态路由']
|
6
|
+
|
7
|
+
module ZXCTN9000_8EA
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['static','ipv6-static-route'].each do|tag|
|
13
|
+
lines = (配置散列[tag] || "").split("\n")
|
14
|
+
lines.each_with_index do|line,index|
|
15
|
+
next unless line.include?('route ')
|
16
|
+
if line.size==80 && lines[index+1][0..1]!='ip'
|
17
|
+
items = (line+lines[index+1]).split(" ")
|
18
|
+
else
|
19
|
+
items = line.split(" ")
|
20
|
+
end
|
21
|
+
if items[2].include?('vrf')
|
22
|
+
head = "static:#{items[3]}"
|
23
|
+
tail = items[4].include?(':') ? items[4].split('/')+items[5..-1] : items[4..-1]
|
24
|
+
else
|
25
|
+
head = "static"
|
26
|
+
tail = items[2].include?(':') ? items[2].split('/')+items[3..-1] : items[2..-1]
|
27
|
+
end
|
28
|
+
static_routes << [head]+tail
|
29
|
+
end
|
30
|
+
end
|
31
|
+
return static_routes
|
32
|
+
end
|
33
|
+
end
|
34
|
+
```
|