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.
Files changed (179) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +2 -0
  3. data/document/acl-M6000-16E.md +27 -0
  4. data/document/acl-M6000-18S.md +27 -0
  5. data/document/acl-M6000-8.md +27 -0
  6. data/document/acl-M6000-8E.md +27 -0
  7. data/document/acl-MA5200G-8.md +204 -0
  8. data/document/acl-ME60-16.md +177 -0
  9. data/document/acl-ME60-X16.md +177 -0
  10. data/document/acl-NE40E-X16.md +204 -0
  11. data/document/acl-NE40E-X16A.md +204 -0
  12. data/document/acl-NE40E-X8.md +204 -0
  13. data/document/acl-NE40E.md +204 -0
  14. data/document/acl-NE5000E-20.md +25 -0
  15. data/document/acl-NE5000E-X16.md +25 -0
  16. data/document/acl-NE5000E-X16A.md +25 -0
  17. data/document/acl-NE80E.md +204 -0
  18. data/document/bgp-CR16010H-F.md +25 -0
  19. data/document/bgp-CR16018-F.md +25 -0
  20. data/document/bgp-CR19000-20.md +25 -0
  21. data/document/bgp-M6000-16E.md +25 -0
  22. data/document/bgp-M6000-18S.md +25 -0
  23. data/document/bgp-M6000-8.md +25 -0
  24. data/document/bgp-M6000-8E.md +25 -0
  25. data/document/bgp-MA5200G-8.md +25 -0
  26. data/document/bgp-ME60-16.md +25 -0
  27. data/document/bgp-ME60-X16.md +25 -0
  28. data/document/bgp-NE40E-X16.md +25 -0
  29. data/document/bgp-NE40E-X16A.md +25 -0
  30. data/document/bgp-NE40E-X8.md +25 -0
  31. data/document/bgp-NE40E.md +25 -0
  32. data/document/bgp-NE5000E-20.md +25 -0
  33. data/document/bgp-NE5000E-X16.md +25 -0
  34. data/document/bgp-NE5000E-X16A.md +25 -0
  35. data/document/bgp-NE80E.md +25 -0
  36. data/document/config.md +1153 -0
  37. data/document/document.rb +27 -0
  38. data/document/if-ALCATEL7750.md +48 -0
  39. data/document/if-C7609.md +47 -0
  40. data/document/if-CR16010H-F.md +300 -0
  41. data/document/if-CR16018-F.md +300 -0
  42. data/document/if-CR19000-20.md +300 -0
  43. data/document/if-CRS-16.md +47 -0
  44. data/document/if-CX600-X16A.md +349 -0
  45. data/document/if-CX600-X8A.md +349 -0
  46. data/document/if-M6000-16E.md +652 -0
  47. data/document/if-M6000-18S.md +846 -0
  48. data/document/if-M6000-8.md +653 -0
  49. data/document/if-M6000-8E.md +653 -0
  50. data/document/if-MA5200G-8.md +357 -0
  51. data/document/if-ME60-16.md +357 -0
  52. data/document/if-ME60-X16.md +357 -0
  53. data/document/if-NE40E-X16.md +357 -0
  54. data/document/if-NE40E-X16A.md +357 -0
  55. data/document/if-NE40E-X8.md +357 -0
  56. data/document/if-NE40E.md +357 -0
  57. data/document/if-NE5000E-20.md +357 -0
  58. data/document/if-NE5000E-X16.md +357 -0
  59. data/document/if-NE5000E-X16A.md +357 -0
  60. data/document/if-NE8000E-X8.md +357 -0
  61. data/document/if-NE80E.md +357 -0
  62. data/document/if-NE8100-X8.md +357 -0
  63. data/document/if-Nokia7750.md +48 -0
  64. data/document/if-T8000-18.md +653 -0
  65. data/document/if-V6000.md +663 -0
  66. data/document/if-VNE9000.md +357 -0
  67. data/document/if-ZXCTN9000-18EA.md +762 -0
  68. data/document/if-ZXCTN9000-8EA.md +762 -0
  69. data/document/lic-M6000-16E.md +28 -0
  70. data/document/lic-M6000-18S.md +28 -0
  71. data/document/lic-M6000-8.md +28 -0
  72. data/document/lic-M6000-8E.md +28 -0
  73. data/document/lic-MA5200G-8.md +27 -0
  74. data/document/lic-ME60-16.md +27 -0
  75. data/document/lic-ME60-X16.md +27 -0
  76. data/document/lic-NE40E-X16.md +27 -0
  77. data/document/lic-NE40E-X16A.md +27 -0
  78. data/document/lic-NE40E-X8.md +27 -0
  79. data/document/log-M6000-16E.md +36 -0
  80. data/document/log-M6000-18S.md +36 -0
  81. data/document/log-M6000-8.md +36 -0
  82. data/document/log-M6000-8E.md +36 -0
  83. data/document/log-MA5200G-8.md +61 -0
  84. data/document/log-ME60-16.md +61 -0
  85. data/document/log-ME60-X16.md +61 -0
  86. data/document/log-NE40E-X16.md +61 -0
  87. data/document/log-NE40E-X16A.md +61 -0
  88. data/document/log-NE40E-X8.md +61 -0
  89. data/document/log-NE40E.md +61 -0
  90. data/document/log-NE5000E-20.md +61 -0
  91. data/document/log-NE5000E-X16.md +61 -0
  92. data/document/log-NE5000E-X16A.md +61 -0
  93. data/document/log-NE80E.md +61 -0
  94. data/document/nat-CR16010H-F.md +27 -0
  95. data/document/nat-CR16018-F.md +27 -0
  96. data/document/nat-M6000-16E.md +27 -0
  97. data/document/nat-M6000-18S.md +27 -0
  98. data/document/nat-M6000-8.md +27 -0
  99. data/document/nat-M6000-8E.md +27 -0
  100. data/document/nat-ME60-16.md +44 -0
  101. data/document/nat-ME60-X16.md +44 -0
  102. data/document/nat-NE40E-X16.md +44 -0
  103. data/document/nat-NE40E-X16A.md +44 -0
  104. data/document/policy-M6000-16E.md +13 -0
  105. data/document/policy-M6000-18S.md +13 -0
  106. data/document/policy-M6000-8.md +13 -0
  107. data/document/policy-M6000-8E.md +13 -0
  108. data/document/policy-MA5200G-8.md +87 -0
  109. data/document/policy-ME60-16.md +87 -0
  110. data/document/policy-ME60-X16.md +87 -0
  111. data/document/policy-NE40E-X16.md +87 -0
  112. data/document/policy-NE40E-X16A.md +87 -0
  113. data/document/policy-NE40E-X8.md +87 -0
  114. data/document/policy-NE40E.md +87 -0
  115. data/document/policy-NE5000E-20.md +87 -0
  116. data/document/policy-NE5000E-X16.md +87 -0
  117. data/document/policy-NE5000E-X16A.md +87 -0
  118. data/document/policy-NE80E.md +87 -0
  119. data/document/pool-M6000-16E.md +126 -0
  120. data/document/pool-M6000-18S.md +126 -0
  121. data/document/pool-M6000-8.md +126 -0
  122. data/document/pool-M6000-8E.md +126 -0
  123. data/document/pool-MA5200G-8.md +138 -0
  124. data/document/pool-ME60-16.md +138 -0
  125. data/document/pool-ME60-X16.md +138 -0
  126. data/document/pool-NE40E-X16.md +138 -0
  127. data/document/pool-NE40E-X16A.md +138 -0
  128. data/document/pool-NE40E-X8.md +138 -0
  129. data/document/pool-NE40E.md +138 -0
  130. data/document/pool-NE80E.md +138 -0
  131. data/document/static-CR16010H-F.md +60 -0
  132. data/document/static-CR16018-F.md +60 -0
  133. data/document/static-CR19000-20.md +60 -0
  134. data/document/static-CX600-X16A.md +26 -0
  135. data/document/static-CX600-X8A.md +26 -0
  136. data/document/static-M6000-16E.md +104 -0
  137. data/document/static-M6000-18S.md +104 -0
  138. data/document/static-M6000-8.md +104 -0
  139. data/document/static-M6000-8E.md +104 -0
  140. data/document/static-MA5200G-8.md +82 -0
  141. data/document/static-ME60-16.md +82 -0
  142. data/document/static-ME60-X16.md +82 -0
  143. data/document/static-NE40E-X16.md +82 -0
  144. data/document/static-NE40E-X16A.md +81 -0
  145. data/document/static-NE40E-X8.md +82 -0
  146. data/document/static-NE40E.md +67 -0
  147. data/document/static-NE5000E-20.md +67 -0
  148. data/document/static-NE5000E-X16.md +67 -0
  149. data/document/static-NE5000E-X16A.md +67 -0
  150. data/document/static-NE8000E-X8.md +26 -0
  151. data/document/static-NE80E.md +67 -0
  152. data/document/static-NE8100-X8.md +26 -0
  153. data/document/static-T8000-18.md +34 -0
  154. data/document/static-ZXCTN9000-18EA.md +34 -0
  155. data/document/static-ZXCTN9000-8EA.md +34 -0
  156. data/document/system-M6000-16E.md +75 -0
  157. data/document/system-M6000-18S.md +76 -0
  158. data/document/system-M6000-8.md +75 -0
  159. data/document/system-M6000-8E.md +75 -0
  160. data/document/system-MA5200G-8.md +51 -0
  161. data/document/system-ME60-16.md +51 -0
  162. data/document/system-ME60-X16.md +51 -0
  163. data/document/system-NE40E-X16.md +51 -0
  164. data/document/system-NE40E-X16A.md +51 -0
  165. data/document/system-NE40E-X8.md +51 -0
  166. data/document/system-NE40E.md +51 -0
  167. data/document/system-NE5000E-20.md +51 -0
  168. data/document/system-NE5000E-X16.md +51 -0
  169. data/document/system-NE5000E-X16A.md +51 -0
  170. data/document/system-NE80E.md +51 -0
  171. data/document/telnet.md +332 -0
  172. data/network.rb +24 -0
  173. data/utility/ipv4_address.rb +266 -0
  174. data/utility/ipv6_address.rb +201 -0
  175. data/utility/mac_address.rb +77 -0
  176. data/utility/netmerge.rb +46 -0
  177. data/utility/route.rb +79 -0
  178. data/utility/whitelist.rb +21 -0
  179. 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
+ ```