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
|
'use strict'
import test from 'ava'
import isCidr, { isCidrV4, isCidrV6 } from '../src'
const v4 = [
'0.0.0.0/16',
'8.8.8.8/17',
'127.0.0.1/18',
'100.100.100.100/19',
'192.168.0.1/20',
'18.101.25.153/24',
'123.23.34.2/25',
'172.26.168.134/26',
'212.58.241.131/27',
'128.0.0.0/28',
'23.71.254.72/29',
'223.255.255.255/30',
'192.0.2.235/31',
'99.198.122.146/32',
'46.51.197.88/8',
'173.194.34.134/12'
]
const v4not = [
'.100.100.100.100/16',
'100..100.100.100./24',
'100.100.100.100./32',
'999.999.999.999/12',
'256.256.256.256/30',
'256.100.100.100.100/26',
'123.123.123/31',
'http://123.123.123/28',
'1000.2.3.4/14',
'999.2.3.4/8'
]
const v6 = [
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/0',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/1',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/2',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/3',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/5',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/6',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/7',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/8',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/9',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/11',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/12',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/13',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/14',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/15',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/16',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/17',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/18',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/19',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/20',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/21',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/22',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/23',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/24',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/25',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/26',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/27',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/28',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/29',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/30',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/31',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/32',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/33',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/34',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/35',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/36',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/37',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/38',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/39',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/40',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/41',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/42',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/43',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/44',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/45',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/46',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/47',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/48',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/49',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/50',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/51',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/52',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/53',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/54',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/55',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/56',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/57',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/58',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/59',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/60',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/61',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/62',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/63',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/64',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/65',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/66',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/67',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/68',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/69',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/70',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/71',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/72',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/73',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/74',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/75',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/76',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/77',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/78',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/79',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/80',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/81',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/82',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/83',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/84',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/85',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/86',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/87',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/88',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/89',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/90',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/91',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/92',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/93',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/94',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/95',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/96',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/97',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/98',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/99',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/100',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/101',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/102',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/103',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/104',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/105',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/106',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/107',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/108',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/109',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/110',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/111',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/112',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/113',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/114',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/115',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/116',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/117',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/118',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/119',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/120',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/121',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/122',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/123',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/124',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/125',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/126',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/127',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/128',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156'
]
const v6not = [
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/129',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/a',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/√',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/00',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/03',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/sdfsdfs',
'fe80:0000:0000:0000:0204:61ff:fe9d:f156/'
]
test('cidr v4', (t) => {
v4.forEach((string) => {
t.true(isCidr(string))
})
v4not.forEach((string) => {
t.false(isCidrV4(string))
})
})
test('cidr v6', (t) => {
v6.forEach((string) => {
t.true(isCidrV6(string))
})
v6not.forEach((string) => {
t.false(isCidrV6(string))
})
})
|