Repository navigation
Expand file tree
/
Copy pathseedspec6_tests.cpp
More file actions
325 lines (311 loc) · 33.4 KB
/
Copy pathseedspec6_tests.cpp
File metadata and controls
325 lines (311 loc) · 33.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
// Copyright (c) 2020 The Bitcoin developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <chainparams.h>
#include <test/setup_common.h>
#include <boost/test/unit_test.hpp>
#include <array>
#include <cstdint>
#include <cstring>
#include <stdexcept>
#include <string>
#include <tuple>
BOOST_FIXTURE_TEST_SUITE(seedspec6_tests, BasicTestingSetup)
BOOST_AUTO_TEST_CASE(test_string_constructor_parse) {
using ExpectedTup = std::tuple<std::vector<uint8_t>, uint16_t, std::string>;
const ExpectedTup expected[] = {
// Note: Double-brace for the std::array initializer is required for older GCC, see issue #170
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x25,0xb7,0x95}}, 8333, "2.37.183.149:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0x87,0xbb,0x0a}}, 8333, "3.135.187.10:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0xd2,0x60,0x09}}, 8333, "3.210.96.9:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x67,0x89,0x92}}, 8333, "5.103.137.146:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xbd,0x99,0x85}}, 8333, "5.189.153.133:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x27,0x7a,0x11}}, 8333, "5.39.122.17:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x2c,0x61,0x6e}}, 8333, "5.44.97.110:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x38,0x28,0x01}}, 8333, "5.56.40.1:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x1d,0x36}}, 8333, "5.9.29.54:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0d,0x7d,0xdd,0x09}}, 8333, "13.125.221.9:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0d,0xe6,0x55,0x8c}}, 8333, "13.230.85.140:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0d,0x5a,0x8d,0x0d}}, 8333, "13.90.141.13:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x0e,0xa1,0x03,0x88}}, 8333, "14.161.3.136:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0x9c,0x3e,0x8e}}, 8333, "18.156.62.142:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xdf,0xa4,0x7b}}, 8333, "18.223.164.123:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x98,0x00,0xc4}}, 8333, "23.152.0.196:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xc0,0x3c,0xdc}}, 8333, "24.192.60.220:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0xdc,0x38,0xc3}}, 8333, "31.220.56.195:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x1f,0x19,0xf1,0xe0}}, 8333, "31.25.241.224:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xe1,0x6b,0x8e}}, 8333, "34.225.107.142:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xf3,0x13,0xc1}}, 8333, "34.243.19.193:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0xf4,0xbc,0xda}}, 8333, "34.244.188.218:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0x5c,0x51,0x7c}}, 8333, "34.92.81.124:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xc1,0xda,0xfd}}, 8333, "35.193.218.253:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xd0,0x6d,0xb5}}, 8333, "35.208.109.181:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xd1,0x03,0x10}}, 8333, "35.209.3.16:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xf0,0xdd,0x5a}}, 8333, "35.240.221.90:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x7b,0x99,0xcd}}, 8333, "37.123.153.205:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xdd,0xd1,0xde}}, 23333, "37.221.209.222:23333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x26,0x8f,0x42,0x76}}, 8333, "38.143.66.118:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x26,0x57,0x36,0xa3}}, 8334, "38.87.54.163:8334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x27,0x69,0x7e,0x86}}, 8333, "39.105.126.134:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x27,0x61,0xb1,0x37}}, 8333, "39.97.177.55:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x97,0x7d,0x18}}, 8333, "45.151.125.24:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x20,0x4f,0x67}}, 8333, "45.32.79.103:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x4d,0x0c,0x63}}, 8333, "45.77.12.99:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x59,0x10,0x11}}, 8333, "45.89.16.17:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x67,0xfb,0xa0}}, 8333, "46.103.251.160:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa5,0xdd,0xd1}}, 8333, "46.165.221.209:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xa6,0x8e,0x34}}, 8333, "46.166.142.52:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0xdd,0x8a,0xf0}}, 8333, "47.221.138.240:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0xfe,0x80,0x95}}, 8363, "47.254.128.149:8363"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x3e,0x3d,0x58}}, 8333, "47.62.61.88:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x5e,0x27,0x57}}, 8333, "47.94.39.87:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x32,0x27,0xf5,0x1a}}, 8333, "50.39.245.26:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x0f,0x6a,0x15}}, 8333, "51.15.106.21:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xa8,0x85,0x8c}}, 8333, "52.168.133.140:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xcb,0x42,0x34}}, 8333, "52.203.66.52:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xf6,0xa6,0xc0}}, 8333, "52.246.166.192:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x47,0x59,0xaf}}, 8333, "52.71.89.175:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x52,0x13,0x0a}}, 8333, "52.82.19.10:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0x98,0xb6,0x19}}, 8333, "54.152.182.25:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3b,0x6e,0x04,0x77}}, 8333, "59.110.4.119:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3c,0xf9,0xd7,0xe0}}, 8333, "60.249.215.224:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x7c,0x97,0x9f}}, 8333, "61.124.151.159:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x12,0x97,0x8e}}, 8333, "61.18.151.142:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xd2,0x6e,0xb5}}, 8333, "62.210.110.181:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0x2a,0x8a,0xa2}}, 8333, "62.42.138.162:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x97,0xf2,0x9a}}, 8333, "66.151.242.154:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xbb,0x41,0x06}}, 8333, "66.187.65.6:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x2a,0x4a,0xfa}}, 8333, "66.42.74.250:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x60,0xc7,0xf9}}, 8333, "66.96.199.249:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xef,0x03,0x92}}, 8333, "67.239.3.146:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0xb7,0x4c,0xd7}}, 8333, "68.183.76.215:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x46,0x43,0x92,0x2d}}, 10503, "70.67.146.45:10503"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x8b,0x7f,0x49}}, 8333, "71.139.127.73:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x43,0x41,0xe6}}, 12502, "71.67.65.230:12502"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x54,0xd2,0xcf}}, 8333, "71.84.210.207:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x5d,0x20,0xf7}}, 8333, "71.93.32.247:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xb7,0x23,0x12}}, 8333, "72.183.35.18:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xc4,0x80,0xc1}}, 8333, "72.196.128.193:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x54,0x4f,0xd3}}, 9333, "76.84.79.211:9333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x78,0x7a,0x72}}, 8333, "77.120.122.114:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x22,0x7e,0x32}}, 8333, "78.34.126.50:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x61,0xce,0x95}}, 8333, "78.97.206.149:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0x37,0x1e,0xbe}}, 8333, "79.55.30.190:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xb3,0xe2,0x30}}, 8333, "80.179.226.48:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xc3,0xf3,0x2d}}, 8333, "80.195.243.45:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xa9,0xfb,0x7c}}, 10333, "81.169.251.124:10333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0x75,0xa6,0x4d}}, 8331, "82.117.166.77:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xc8,0xcd,0x1e}}, 8331, "82.200.205.30:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xdd,0x6b,0xd8}}, 8333, "82.221.107.216:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0xdd,0xd3,0x74}}, 8333, "83.221.211.116:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xd5,0xbc,0x40}}, 8333, "84.213.188.64:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x2c,0xea,0xdc}}, 8333, "84.44.234.220:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x0a,0xc9,0x0f}}, 8333, "85.10.201.15:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x94,0x0e,0xa0}}, 8333, "85.148.14.160:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd1,0xf0,0x5c}}, 8333, "85.209.240.92:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x40,0x23,0x7a}}, 8333, "85.64.35.122:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0x90,0xb7,0x16}}, 8333, "87.144.183.22:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xc6,0x21,0xd6}}, 8333, "88.198.33.214:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x58,0xd0,0x03,0xc3}}, 8331, "88.208.3.195:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x84,0xef,0x39}}, 8333, "89.132.239.57:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xa0,0x71,0xae}}, 8333, "89.160.113.174:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xa3,0x94,0x79}}, 8333, "89.163.148.121:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xb3,0xf7,0xec}}, 8333, "89.179.247.236:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x28,0x07,0x61}}, 8333, "89.40.7.97:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x07,0x19,0xc4}}, 8333, "89.7.25.196:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0xa3,0xc3}}, 18334, "91.121.163.195:18334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xc5,0x2c,0x90}}, 8333, "91.197.44.144:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0x2a,0x68,0x0d}}, 8333, "92.42.104.13:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x68,0xd0,0x77}}, 8333, "93.104.208.119:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0xee,0x65,0xa8}}, 8333, "93.238.101.168:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x5a,0xc1,0xc3}}, 8331, "93.90.193.195:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x82,0x10,0x60}}, 8333, "94.130.16.96:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x13,0x49,0x6a}}, 8331, "94.19.73.106:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xf4,0x61,0xf4}}, 8533, "94.244.97.244:8533"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xf7,0x86,0xba}}, 8333, "94.247.134.186:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x0c,0xad}}, 8333, "95.216.12.173:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0x3f,0xe5,0x29}}, 8333, "95.63.229.41:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x60,0x7e,0x75,0x05}}, 8333, "96.126.117.5:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x64,0x0b,0x84,0xf1}}, 8333, "100.11.132.241:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x65,0x5c,0x27,0x74}}, 8334, "101.92.39.116:8334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x66,0x44,0x56,0x31}}, 8333, "102.68.86.49:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xe6,0xb9,0x04}}, 8333, "103.230.185.4:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0x9a,0xbd,0x18}}, 8333, "104.154.189.24:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0xc4,0xff,0x5b}}, 8333, "104.196.255.91:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x68,0xee,0x83,0x74}}, 8333, "104.238.131.116:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6a,0xa7,0xc5,0x21}}, 8333, "106.167.197.33:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xac,0x09,0xd1}}, 8333, "107.172.9.209:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xae,0x46,0xfa}}, 8333, "107.174.70.250:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xbf,0x75,0xaf}}, 8333, "107.191.117.175:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xad,0x30,0x98}}, 8333, "108.173.48.152:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0x91,0x2f,0x9e}}, 8333, "109.145.47.158:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xc3,0x96,0x6a}}, 8333, "109.195.150.106:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6f,0x5a,0x97,0x30}}, 8333, "111.90.151.48:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x75,0x14,0x41,0x36}}, 8333, "117.20.65.54:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0x03,0xf8,0x6c}}, 9113, "119.3.248.108:9113"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0xc7,0x3b,0x80}}, 8333, "121.199.59.128:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0xfe,0xaf,0x1b}}, 8333, "121.254.175.27:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x86,0xd1,0x51,0xfb}}, 8333, "134.209.81.251:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x88,0x90,0xd7,0xdb}}, 8133, "136.144.215.219:8133"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8a,0xc9,0xde,0xd9}}, 8333, "138.201.222.217:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8a,0x44,0xf9,0x2f}}, 8333, "138.68.249.47:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8b,0xa2,0x15,0x50}}, 8333, "139.162.21.80:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8e,0x44,0x52,0xe2}}, 8333, "142.68.82.226:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x4c,0x2c,0x39}}, 8333, "144.76.44.57:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0xd2,0xee,0x1f}}, 8333, "149.210.238.31:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x98,0x88,0x17,0x0f}}, 8333, "152.136.23.15:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9b,0x8a,0xc0,0xe4}}, 8333, "155.138.192.228:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9e,0xb1,0xba,0x37}}, 8333, "158.177.186.55:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xdc,0x2f,0x96}}, 8333, "162.220.47.150:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0xf2,0xa8,0x37}}, 8333, "162.242.168.55:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa2,0x3e,0x15,0xb6}}, 8333, "162.62.21.182:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0xac,0x29,0x8c}}, 8333, "167.172.41.140:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa8,0xeb,0x48,0xc4}}, 8333, "168.235.72.196:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaa,0x34,0x47,0x62}}, 8333, "170.52.71.98:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x68,0x22,0xd6}}, 8333, "172.104.34.214:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0xf9,0x4d,0x94}}, 8333, "172.249.77.148:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x5d,0x85,0x77}}, 6359, "172.93.133.119:6359"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0xcb,0x52}}, 9333, "173.208.203.82:9333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd4,0xc1,0x17}}, 8333, "173.212.193.23:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x4f,0x81,0x72}}, 8888, "173.79.129.114:8888"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x5e,0x32,0x6b}}, 8333, "173.94.50.107:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xae,0x8d,0xc4,0xcc}}, 8333, "174.141.196.204:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaf,0xb0,0x8e,0x6e}}, 8333, "175.176.142.110:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0xdf,0x89,0x25}}, 8335, "176.223.137.37:8335"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb1,0x26,0xd7,0x09}}, 8333, "177.38.215.9:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xda,0x6f,0xfa}}, 8333, "178.218.111.250:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3b,0x22,0x04}}, 8333, "178.59.34.4:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x3f,0x58,0x04}}, 8333, "178.63.88.4:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb3,0xda,0x5a,0xeb}}, 8333, "179.218.90.235:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb7,0x6f,0xea,0xdd}}, 8333, "183.111.234.221:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x6b,0x50,0x01}}, 8333, "185.107.80.1:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x19,0x3c,0xc7}}, 8331, "185.25.60.199:8331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x1a,0x1c,0xab}}, 8333, "185.26.28.171:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x32,0x25,0xab}}, 8333, "185.50.37.171:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x51,0xa4,0x26}}, 8333, "185.81.164.38:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x14,0xb8,0x7a}}, 8333, "188.20.184.122:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xe2,0x96,0xa6}}, 8333, "188.226.150.166:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x28,0x5d,0xcd}}, 8333, "188.40.93.205:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x42,0x1a,0x3d}}, 8333, "188.66.26.61:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbd,0xd3,0x92,0x8c}}, 8333, "189.211.146.140:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbe,0x02,0x82,0x1b}}, 8333, "190.2.130.27:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0xbb,0x79,0x2b}}, 8333, "192.187.121.43:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x1e,0x59,0x8e}}, 60714, "192.30.89.142:60714"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x51,0xdc,0xd2}}, 8333, "192.81.220.210:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x87,0x0a,0xd7}}, 8333, "193.135.10.215:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x8a,0xda,0x43}}, 8333, "193.138.218.67:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0xa9,0xf4,0xbd}}, 8333, "193.169.244.189:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x1d,0xbb,0x4e}}, 8333, "193.29.187.78:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x0e,0xf6,0xcd}}, 8444, "194.14.246.205:8444"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x95,0x5a,0x13}}, 8333, "194.149.90.19:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x63,0x15,0x87}}, 8333, "194.99.21.135:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x7a,0x96,0xad}}, 8333, "195.122.150.173:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9a,0xa8,0x81}}, 8333, "195.154.168.129:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xb5,0xf0,0xe5}}, 8333, "195.181.240.229:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0xcc,0xe5,0x22}}, 8333, "198.204.229.34:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x1b,0x53,0xd2}}, 13020, "198.27.83.210:13020"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x32,0xb3,0x56}}, 8333, "198.50.179.86:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xad,0x74,0x22}}, 8333, "203.173.116.34:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0x7c,0x95,0x43}}, 8333, "206.124.149.67:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd1,0xa0,0x21,0xe9}}, 8333, "209.160.33.233:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd2,0xf2,0x1b,0xed}}, 8333, "210.242.27.237:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd3,0x20,0x75,0x6a}}, 8333, "211.32.117.106:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd3,0x2b,0x08,0xa8}}, 8335, "211.43.8.168:8335"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd3,0x3f,0xd4,0x1a}}, 8333, "211.63.212.26:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x20,0xe6,0xdb}}, 8333, "212.32.230.219:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xca,0xd4,0x4e}}, 8334, "213.202.212.78:8334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0xe8,0x7c,0x79}}, 8444, "213.232.124.121:8444"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd8,0x6c,0xec,0xb4}}, 17777, "216.108.236.180:17777"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x75,0x1d,0x47}}, 8333, "217.117.29.71:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xa0,0xa9,0xe2}}, 8333, "217.160.169.226:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0xd9,0x37,0x0e}}, 8333, "217.217.55.14:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x1f,0xa6,0x7b}}, 8333, "217.31.166.123:8333"},
{{{0x20,0x01,0x04,0x70,0x8f,0x9e,0x09,0x44,0x50,0x54,0x00,0xff,0xfe,0xd7,0xc1,0x64}}, 8333, "[2001:470:8f9e:944:5054:ff:fed7:c164]:8333"},
{{{0x20,0x01,0x06,0x7c,0x2b,0x8c,0x00,0x01,0x02,0x25,0x90,0xff,0xfe,0x54,0x53,0x06}}, 8333, "[2001:67c:2b8c:1:225:90ff:fe54:5306]:8333"},
{{{0x26,0x04,0x01,0x80,0x00,0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61}}, 8333, "[2604:180:f4::61]:8333"},
{{{0x26,0x04,0xe8,0x80,0x00,0x00,0x00,0x15,0x0e,0xc4,0x7a,0xff,0xfe,0x4a,0x40,0xe1}}, 8333, "[2604:e880:0:15:ec4:7aff:fe4a:40e1]:8333"},
{{{0x2a,0x00,0x17,0x68,0x20,0x01,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0xcb}}, 8333, "[2a00:1768:2001:27::a1cb]:8333"},
{{{0x2a,0x00,0x7c,0x80,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x4a,0xd9}}, 8333, "[2a00:7c80:0:10b::4ad9]:8333"},
{{{0x2a,0x01,0x05,0xf0,0xbe,0xef,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01}}, 52102, "[2a01:5f0:beef:5:0:3:0:1]:52102"},
{{{0x2a,0x01,0x07,0xa0,0x00,0x02,0x13,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09}}, 8333, "[2a01:7a0:2:137a::9]:8333"},
{{{0x2a,0x02,0x47,0x80,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x88,0x4a}}, 8333, "[2a02:4780:1:1::1:884a]:8333"},
{{{0x2a,0x02,0x7b,0x40,0xb0,0xdf,0x89,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}}, 8335, "[2a02:7b40:b0df:8925::1]:8335"},
{{{0x2a,0x02,0xa3,0x11,0x81,0x43,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}}, 8343, "[2a02:a311:8143:8c00::4]:8343"},
{{{0x2a,0x03,0x1b,0x20,0x00,0x01,0xf4,0x10,0x00,0x40,0x00,0x00,0x00,0x00,0xac,0xef}}, 8333, "[2a03:1b20:1:f410:40::acef]:8333"},
{{{0x2a,0x04,0x21,0x80,0x00,0x01,0x00,0x11,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x16}}, 8333, "[2a04:2180:1:11:f000::16]:8333"},
{{{0x2a,0x0a,0x51,0xc0,0x00,0x00,0x01,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}}, 8333, "[2a0a:51c0:0:136::4]:8333"},
{{{0x2c,0x0f,0xf5,0x98,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x4f,0xc0,0xfe}}, 8333, "[2c0f:f598:6::54f:c0fe]:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x03,0x01,0xc8,0xe7}}, 18333, "3.1.200.231:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xca,0xd5,0xa8}}, 8333, "18.202.213.168:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xd0,0xcf,0x97}}, 18333, "18.208.207.151:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0x4c,0xd5,0xe9}}, 18333, "34.76.213.233:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x22,0x4d,0x92,0xc0}}, 18333, "34.77.146.192:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xd1,0x67,0x84}}, 18333, "35.209.103.132:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xe2,0xf2,0xa4}}, 18333, "35.226.242.164:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x6f,0xa2,0x92}}, 8333, "47.111.162.146:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2f,0x4b,0xda,0x4f}}, 18334, "47.75.218.79:18334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x0f,0x7d,0x05}}, 18333, "51.15.125.5:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x89,0x30,0x2d}}, 18333, "52.137.48.45:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xd2,0x12,0x54}}, 18333, "52.210.18.84:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xd3,0xd3,0x0b}}, 18333, "52.211.211.11:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0xa4,0xae,0x49}}, 8333, "54.164.174.73:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x47,0x8b,0x7f,0x49}}, 18333, "71.139.127.73:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x26,0x03,0xc7}}, 18433, "84.38.3.199:18433"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x79,0x58,0x34}}, 18130, "91.121.88.52:18130"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xb3,0xb7,0x8f}}, 18333, "95.179.183.143:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0xae,0x10}}, 18333, "95.216.174.16:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0x4c,0x24,0x71}}, 18331, "103.76.36.113:18331"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0x03,0xa8,0x54}}, 18333, "119.3.168.84:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0x28,0x4c,0x40}}, 8333, "121.40.76.64:8333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8b,0xa2,0x4c,0x90}}, 18334, "139.162.76.144:18334"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9d,0xe6,0x72,0x0e}}, 18333, "157.230.114.14:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9f,0x41,0xa3,0x0f}}, 18333, "159.65.163.15:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa5,0x16,0x58,0xa3}}, 18333, "165.22.88.163:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x69,0xe9,0x11}}, 18333, "172.105.233.17:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc1,0x87,0x0a,0xd7}}, 18333, "193.135.10.215:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0x0e,0xf7,0x83}}, 18333, "194.14.247.131:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9a,0xb1,0x31}}, 18333, "195.154.177.49:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xa2,0x50,0x65}}, 18333, "203.162.80.101:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xbd,0xcb,0xa8}}, 18333, "206.189.203.168:18333"},
{{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x2f,0xfe,0x58}}, 18333, "212.47.254.88:18333"},
{{{0x20,0x01,0x41,0xd0,0x00,0x01,0x8d,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}}, 18130, "[2001:41d0:1:8d34::1]:18130"},
{{{0x2a,0x01,0x04,0xf8,0x01,0x90,0x42,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}}, 18333, "[2a01:4f8:190:4210::2]:18333"},
{{{0x2a,0x0a,0x51,0xc0,0x00,0x00,0x01,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}}, 18333, "[2a0a:51c0:0:136::4]:18333"},
};
const std::string nonroutable[] = {
"192.168.0.123:8333",
"10.10.10.2:8333",
"127.0.0.1:8333",
"[::1]:18333"
};
const std::string invalid[] = {
"193.135.10.215", // missing port
"193.135.10.215:65537", // port out of range
"193.135.10.215:0", // port is 0
"172.105.233.17:-1", // port is negative
"www.google.com:8333", // non-numeric
};
for (const auto &tup : expected) {
const auto &data = std::get<0>(tup);
const auto port = std::get<1>(tup);
const std::string &host = std::get<2>(tup);
BOOST_TEST_MESSAGE("Testing: " + host);
const SeedSpec6 spec{data, port};
const auto addrBytes = spec.GetAddrBytes();
BOOST_CHECK_EQUAL_COLLECTIONS(data.begin(), data.end(), addrBytes.begin(), addrBytes.end());
BOOST_CHECK_EQUAL(spec.GetPort(), port);
const SeedSpec6 specFromHostStr{host},
specFromHostCStr{host.c_str()};
BOOST_CHECK_MESSAGE(specFromHostStr == spec, "Checking that parsing constructor produced the expected results");
BOOST_CHECK_MESSAGE(specFromHostStr == specFromHostCStr, "Checking both C-style and C++-style parsing constructors match");
}
for (const auto &str : nonroutable) {
BOOST_TEST_MESSAGE(str + " should be non-routable");
BOOST_CHECK_THROW(SeedSpec6{str}, std::invalid_argument);
}
for (const auto &str : invalid) {
BOOST_TEST_MESSAGE(str + " should be invalid");
BOOST_CHECK_THROW(SeedSpec6{str}, std::invalid_argument);
}
}
BOOST_AUTO_TEST_SUITE_END()