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,104 @@
|
|
1
|
+
|
2
|
+
# M6000-18S 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-18S', '静态路由']
|
6
|
+
|
7
|
+
module M6000_18S
|
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
|
+
```
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
@sign << ['M6000-18S', '静态用户地址']
|
38
|
+
@sign << ['M6000-18S', '静态接口地址']
|
39
|
+
@sign << ['M6000-18S', '静态域地址']
|
40
|
+
|
41
|
+
module M6000_18S
|
42
|
+
module_function
|
43
|
+
|
44
|
+
def 静态用户地址 conf
|
45
|
+
tab = []
|
46
|
+
lines = (conf['ip-host'] || "").split("\n")
|
47
|
+
lines.each_with_index do|line,index|
|
48
|
+
next unless line.include?('ip-host')
|
49
|
+
if line.size==80 && lines[index+1][0..1]!=' '
|
50
|
+
words = (line+lines[index+1]).split(" ")
|
51
|
+
else
|
52
|
+
words = line.split(' ')
|
53
|
+
end
|
54
|
+
tab << words
|
55
|
+
end
|
56
|
+
tab
|
57
|
+
end
|
58
|
+
|
59
|
+
def 静态接口地址 raw,*guards
|
60
|
+
tab = []
|
61
|
+
content = raw.split('show arp dynamic')[1].to_s.split('HB-')[0].to_s
|
62
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
63
|
+
textlist.split("\n").each do|line|
|
64
|
+
item = line.strip.split(' ')
|
65
|
+
if item.size == 1
|
66
|
+
tab[-1][3] += item[0]
|
67
|
+
elsif item.size == 2
|
68
|
+
tab[-1][3] += item[0]
|
69
|
+
tab[-1][-1]+= item[1]
|
70
|
+
else
|
71
|
+
tab << item
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
content = raw.split('show arp permanent')[1].to_s.split('HB-')[0].to_s
|
76
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
77
|
+
textlist.split("\n").each do|line|
|
78
|
+
item = line.strip.split(' ')
|
79
|
+
if item.size == 1
|
80
|
+
tab[-1][3] += item[0]
|
81
|
+
else
|
82
|
+
tab << item
|
83
|
+
end
|
84
|
+
end
|
85
|
+
return tab
|
86
|
+
end
|
87
|
+
|
88
|
+
def 静态域地址 raw,*guards
|
89
|
+
tab = []
|
90
|
+
content = raw.split('show subscriber user-type ip-host')[1].to_s.split('HB-')[0].to_s
|
91
|
+
textlist = content.split('INTERFACE(Exvlan/Invlan) CreateTime ')[1].to_s.split('--------------------------------------------------------------------------------')[0].to_s
|
92
|
+
textlist.split("\n").each do|line|
|
93
|
+
item = line.strip.split(' ')
|
94
|
+
if item.size == 3 && item[1].include?('.')
|
95
|
+
item.insert 1, ''
|
96
|
+
tab << item
|
97
|
+
elsif item.size == 3 && !item[1].include?('.')
|
98
|
+
tab[-1] += [item[0], item[1..2].join(' ')]
|
99
|
+
end
|
100
|
+
end
|
101
|
+
return tab
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
@@ -0,0 +1,104 @@
|
|
1
|
+
|
2
|
+
# M6000-8 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-8', '静态路由']
|
6
|
+
|
7
|
+
module M6000_8
|
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
|
+
```
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
@sign << ['M6000-8', '静态用户地址']
|
38
|
+
@sign << ['M6000-8', '静态接口地址']
|
39
|
+
@sign << ['M6000-8', '静态域地址']
|
40
|
+
|
41
|
+
module M6000_8
|
42
|
+
module_function
|
43
|
+
|
44
|
+
def 静态用户地址 conf
|
45
|
+
tab = []
|
46
|
+
lines = (conf['ip-host'] || "").split("\n")
|
47
|
+
lines.each_with_index do|line,index|
|
48
|
+
next unless line.include?('ip-host')
|
49
|
+
if line.size==80 && lines[index+1][0..1]!=' '
|
50
|
+
words = (line+lines[index+1]).split(" ")
|
51
|
+
else
|
52
|
+
words = line.split(' ')
|
53
|
+
end
|
54
|
+
tab << words
|
55
|
+
end
|
56
|
+
tab
|
57
|
+
end
|
58
|
+
|
59
|
+
def 静态接口地址 raw,*guards
|
60
|
+
tab = []
|
61
|
+
content = raw.split('show arp dynamic')[1].to_s.split('HB-')[0].to_s
|
62
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
63
|
+
textlist.split("\n").each do|line|
|
64
|
+
item = line.strip.split(' ')
|
65
|
+
if item.size == 1
|
66
|
+
tab[-1][3] += item[0]
|
67
|
+
elsif item.size == 2
|
68
|
+
tab[-1][3] += item[0]
|
69
|
+
tab[-1][-1]+= item[1]
|
70
|
+
else
|
71
|
+
tab << item
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
content = raw.split('show arp permanent')[1].to_s.split('HB-')[0].to_s
|
76
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
77
|
+
textlist.split("\n").each do|line|
|
78
|
+
item = line.strip.split(' ')
|
79
|
+
if item.size == 1
|
80
|
+
tab[-1][3] += item[0]
|
81
|
+
else
|
82
|
+
tab << item
|
83
|
+
end
|
84
|
+
end
|
85
|
+
return tab
|
86
|
+
end
|
87
|
+
|
88
|
+
def 静态域地址 raw,*guards
|
89
|
+
tab = []
|
90
|
+
content = raw.split('show subscriber user-type ip-host')[1].to_s.split('HB-')[0].to_s
|
91
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
92
|
+
textlist.split("\n").each do|line|
|
93
|
+
item = line.strip.split(' ')
|
94
|
+
if item.size == 1
|
95
|
+
tab[-1][1] += item[0]
|
96
|
+
else
|
97
|
+
item.insert 1, ''
|
98
|
+
tab << item
|
99
|
+
end
|
100
|
+
end
|
101
|
+
return tab
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
@@ -0,0 +1,104 @@
|
|
1
|
+
|
2
|
+
# M6000-8E 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-8E', '静态路由']
|
6
|
+
|
7
|
+
module M6000_8E
|
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
|
+
```
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
@sign << ['M6000-8E', '静态用户地址']
|
38
|
+
@sign << ['M6000-8E', '静态接口地址']
|
39
|
+
@sign << ['M6000-8E', '静态域地址']
|
40
|
+
|
41
|
+
module M6000_8E
|
42
|
+
module_function
|
43
|
+
|
44
|
+
def 静态用户地址 conf
|
45
|
+
tab = []
|
46
|
+
lines = (conf['ip-host'] || "").split("\n")
|
47
|
+
lines.each_with_index do|line,index|
|
48
|
+
next unless line.include?('ip-host')
|
49
|
+
if line.size==80 && lines[index+1][0..1]!=' '
|
50
|
+
words = (line+lines[index+1]).split(" ")
|
51
|
+
else
|
52
|
+
words = line.split(' ')
|
53
|
+
end
|
54
|
+
tab << words
|
55
|
+
end
|
56
|
+
tab
|
57
|
+
end
|
58
|
+
|
59
|
+
def 静态接口地址 raw,*guards
|
60
|
+
tab = []
|
61
|
+
content = raw.split('show arp dynamic')[1].to_s.split('HB-')[0].to_s
|
62
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
63
|
+
textlist.split("\n").each do|line|
|
64
|
+
item = line.strip.split(' ')
|
65
|
+
if item.size == 1
|
66
|
+
tab[-1][3] += item[0]
|
67
|
+
elsif item.size == 2
|
68
|
+
tab[-1][3] += item[0]
|
69
|
+
tab[-1][-1]+= item[1]
|
70
|
+
else
|
71
|
+
tab << item
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
content = raw.split('show arp permanent')[1].to_s.split('HB-')[0].to_s
|
76
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
77
|
+
textlist.split("\n").each do|line|
|
78
|
+
item = line.strip.split(' ')
|
79
|
+
if item.size == 1
|
80
|
+
tab[-1][3] += item[0]
|
81
|
+
else
|
82
|
+
tab << item
|
83
|
+
end
|
84
|
+
end
|
85
|
+
return tab
|
86
|
+
end
|
87
|
+
|
88
|
+
def 静态域地址 raw,*guards
|
89
|
+
tab = []
|
90
|
+
content = raw.split('show subscriber user-type ip-host')[1].to_s.split('HB-')[0].to_s
|
91
|
+
textlist = content.split('--------------------------------------------------------------------------------')[1].to_s
|
92
|
+
textlist.split("\n").each do|line|
|
93
|
+
item = line.strip.split(' ')
|
94
|
+
if item.size == 1
|
95
|
+
tab[-1][1] += item[0]
|
96
|
+
else
|
97
|
+
item.insert 1, ''
|
98
|
+
tab << item
|
99
|
+
end
|
100
|
+
end
|
101
|
+
return tab
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
@@ -0,0 +1,82 @@
|
|
1
|
+
|
2
|
+
# MA5200G-8 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['MA5200G-8', '静态路由']
|
6
|
+
|
7
|
+
module MA5200G_8
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def 静态路由 配置散列
|
11
|
+
static_routes = []
|
12
|
+
['ip','ipv6'].each do|tag|
|
13
|
+
(配置散列[tag] || []).map{|part|part.split("\n")}.flatten.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 << ['MA5200G-8', '静态用户地址']
|
30
|
+
@sign << ['MA5200G-8', '静态接口地址']
|
31
|
+
@sign << ['MA5200G-8', '静态域地址']
|
32
|
+
|
33
|
+
module MA5200G_8
|
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,82 @@
|
|
1
|
+
|
2
|
+
# ME60-16 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ME60-16', '静态路由']
|
6
|
+
|
7
|
+
module ME60_16
|
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 << ['ME60-16', '静态用户地址']
|
30
|
+
@sign << ['ME60-16', '静态接口地址']
|
31
|
+
@sign << ['ME60-16', '静态域地址']
|
32
|
+
|
33
|
+
module ME60_16
|
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,82 @@
|
|
1
|
+
|
2
|
+
# ME60-X16 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ME60-X16', '静态路由']
|
6
|
+
|
7
|
+
module ME60_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 << ['ME60-X16', '静态用户地址']
|
30
|
+
@sign << ['ME60-X16', '静态接口地址']
|
31
|
+
@sign << ['ME60-X16', '静态域地址']
|
32
|
+
|
33
|
+
module ME60_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
|
+
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,82 @@
|
|
1
|
+
|
2
|
+
# NE40E-X16 静态信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X16', '静态路由']
|
6
|
+
|
7
|
+
module NE40E_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 << ['NE40E-X16', '静态用户地址']
|
30
|
+
@sign << ['NE40E-X16', '静态接口地址']
|
31
|
+
@sign << ['NE40E-X16', '静态域地址']
|
32
|
+
|
33
|
+
module NE40E_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
|
+
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
|
+
```
|