uri_scanner 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ require "uri_scanner/ip_address"
2
+ require "uri_scanner/uri_parser"
3
+ require "uri_scanner/uri_scanner"
4
+ require "uri_scanner/version"
5
+
6
+ module URIScanner
7
+ def is_ip_valid?(ip_addr)
8
+ MachineIpAddr.new.is_valid? ip_addr
9
+ end
10
+
11
+ def parse_uri(data)
12
+ MachineURI.new data
13
+ end
14
+
15
+ def scan(data)
16
+ MachineURIScanner.scan data
17
+ end
18
+
19
+ def scan_and_parse(data)
20
+ MachineURIScanner.scan data, true
21
+ end
22
+
23
+ module_function :is_ip_valid?, :parse_uri, :scan, :scan_and_parse
24
+ end
@@ -0,0 +1,532 @@
1
+
2
+ # line 1 "lib/uri_scanner/ip_address.rl"
3
+ #
4
+ # @LANG: ruby
5
+ # Parsing IP address (IPv4/IPv6)
6
+ #
7
+
8
+
9
+ # line 11 "lib/uri_scanner/ip_address.rl"
10
+
11
+
12
+ # Ruby Class goes here
13
+ class MachineIpAddr
14
+
15
+ def initialize
16
+
17
+ # line 18 "lib/uri_scanner/ip_address.rb"
18
+ class << self
19
+ attr_accessor :_m_ipaddr_key_offsets
20
+ private :_m_ipaddr_key_offsets, :_m_ipaddr_key_offsets=
21
+ end
22
+ self._m_ipaddr_key_offsets = [
23
+ 0, 0, 10, 18, 23, 26, 31, 34,
24
+ 39, 42, 43, 49, 52, 55, 56, 62,
25
+ 65, 73, 81, 82, 89, 96, 103, 110,
26
+ 111, 118, 125, 132, 139, 140, 147, 154,
27
+ 161, 168, 169, 176, 183, 190, 197, 198,
28
+ 205, 212, 219, 226, 227, 237, 245, 253,
29
+ 261, 262, 269, 276, 283, 294, 304, 312,
30
+ 320, 327, 333, 342, 351, 360, 369, 376,
31
+ 383, 394, 404, 412, 420, 421, 427, 433,
32
+ 440, 447, 454, 455, 461, 468, 475, 482,
33
+ 483, 489, 496, 503, 510, 511, 517, 524,
34
+ 531, 538, 539, 548, 556, 564, 572, 573,
35
+ 580, 587, 598, 608, 616, 624, 631, 638,
36
+ 640, 642, 642, 647, 649, 655, 661, 667,
37
+ 673, 682, 690, 698, 706, 707, 714, 721,
38
+ 732, 742, 750, 758, 765, 774, 782, 790,
39
+ 798, 799, 806, 813, 824, 834, 842, 850,
40
+ 857, 866, 874, 882, 890, 891, 898, 905,
41
+ 916, 926, 934, 942, 949, 958, 966, 974,
42
+ 982, 983, 990, 997, 1008, 1018, 1026, 1034,
43
+ 1041, 1050, 1058, 1066, 1074, 1075, 1082, 1089,
44
+ 1100, 1110, 1118, 1126, 1133, 1140, 1147, 1154
45
+ ]
46
+
47
+ class << self
48
+ attr_accessor :_m_ipaddr_trans_keys
49
+ private :_m_ipaddr_trans_keys, :_m_ipaddr_trans_keys=
50
+ end
51
+ self._m_ipaddr_trans_keys = [
52
+ 50, 58, 48, 49, 51, 57, 65, 70,
53
+ 97, 102, 46, 58, 48, 57, 65, 70,
54
+ 97, 102, 50, 48, 49, 51, 57, 46,
55
+ 48, 57, 50, 48, 49, 51, 57, 46,
56
+ 48, 57, 50, 48, 49, 51, 57, 46,
57
+ 48, 57, 46, 46, 53, 48, 52, 54,
58
+ 57, 46, 48, 53, 46, 48, 57, 46,
59
+ 46, 53, 48, 52, 54, 57, 46, 48,
60
+ 53, 46, 58, 48, 57, 65, 70, 97,
61
+ 102, 46, 58, 48, 57, 65, 70, 97,
62
+ 102, 58, 58, 48, 57, 65, 70, 97,
63
+ 102, 58, 48, 57, 65, 70, 97, 102,
64
+ 58, 48, 57, 65, 70, 97, 102, 58,
65
+ 48, 57, 65, 70, 97, 102, 58, 58,
66
+ 48, 57, 65, 70, 97, 102, 58, 48,
67
+ 57, 65, 70, 97, 102, 58, 48, 57,
68
+ 65, 70, 97, 102, 58, 48, 57, 65,
69
+ 70, 97, 102, 58, 58, 48, 57, 65,
70
+ 70, 97, 102, 58, 48, 57, 65, 70,
71
+ 97, 102, 58, 48, 57, 65, 70, 97,
72
+ 102, 58, 48, 57, 65, 70, 97, 102,
73
+ 58, 58, 48, 57, 65, 70, 97, 102,
74
+ 58, 48, 57, 65, 70, 97, 102, 58,
75
+ 48, 57, 65, 70, 97, 102, 58, 48,
76
+ 57, 65, 70, 97, 102, 58, 58, 48,
77
+ 57, 65, 70, 97, 102, 58, 48, 57,
78
+ 65, 70, 97, 102, 58, 48, 57, 65,
79
+ 70, 97, 102, 58, 48, 57, 65, 70,
80
+ 97, 102, 58, 50, 58, 48, 49, 51,
81
+ 57, 65, 70, 97, 102, 46, 58, 48,
82
+ 57, 65, 70, 97, 102, 46, 58, 48,
83
+ 57, 65, 70, 97, 102, 46, 58, 48,
84
+ 57, 65, 70, 97, 102, 58, 58, 48,
85
+ 57, 65, 70, 97, 102, 58, 48, 57,
86
+ 65, 70, 97, 102, 58, 48, 57, 65,
87
+ 70, 97, 102, 46, 53, 58, 48, 52,
88
+ 54, 57, 65, 70, 97, 102, 46, 58,
89
+ 48, 53, 54, 57, 65, 70, 97, 102,
90
+ 46, 58, 48, 57, 65, 70, 97, 102,
91
+ 46, 58, 48, 57, 65, 70, 97, 102,
92
+ 58, 48, 57, 65, 70, 97, 102, 48,
93
+ 57, 65, 70, 97, 102, 50, 48, 49,
94
+ 51, 57, 65, 70, 97, 102, 50, 48,
95
+ 49, 51, 57, 65, 70, 97, 102, 50,
96
+ 48, 49, 51, 57, 65, 70, 97, 102,
97
+ 50, 48, 49, 51, 57, 65, 70, 97,
98
+ 102, 58, 48, 57, 65, 70, 97, 102,
99
+ 58, 48, 57, 65, 70, 97, 102, 46,
100
+ 53, 58, 48, 52, 54, 57, 65, 70,
101
+ 97, 102, 46, 58, 48, 53, 54, 57,
102
+ 65, 70, 97, 102, 46, 58, 48, 57,
103
+ 65, 70, 97, 102, 46, 58, 48, 57,
104
+ 65, 70, 97, 102, 58, 48, 57, 65,
105
+ 70, 97, 102, 48, 57, 65, 70, 97,
106
+ 102, 58, 48, 57, 65, 70, 97, 102,
107
+ 58, 48, 57, 65, 70, 97, 102, 58,
108
+ 48, 57, 65, 70, 97, 102, 58, 48,
109
+ 57, 65, 70, 97, 102, 58, 48, 57,
110
+ 65, 70, 97, 102, 58, 48, 57, 65,
111
+ 70, 97, 102, 58, 48, 57, 65, 70,
112
+ 97, 102, 58, 48, 57, 65, 70, 97,
113
+ 102, 58, 48, 57, 65, 70, 97, 102,
114
+ 58, 48, 57, 65, 70, 97, 102, 58,
115
+ 48, 57, 65, 70, 97, 102, 58, 48,
116
+ 57, 65, 70, 97, 102, 58, 48, 57,
117
+ 65, 70, 97, 102, 58, 48, 57, 65,
118
+ 70, 97, 102, 58, 48, 57, 65, 70,
119
+ 97, 102, 58, 50, 48, 49, 51, 57,
120
+ 65, 70, 97, 102, 46, 58, 48, 57,
121
+ 65, 70, 97, 102, 46, 58, 48, 57,
122
+ 65, 70, 97, 102, 46, 58, 48, 57,
123
+ 65, 70, 97, 102, 58, 58, 48, 57,
124
+ 65, 70, 97, 102, 58, 48, 57, 65,
125
+ 70, 97, 102, 46, 53, 58, 48, 52,
126
+ 54, 57, 65, 70, 97, 102, 46, 58,
127
+ 48, 53, 54, 57, 65, 70, 97, 102,
128
+ 46, 58, 48, 57, 65, 70, 97, 102,
129
+ 46, 58, 48, 57, 65, 70, 97, 102,
130
+ 58, 48, 57, 65, 70, 97, 102, 58,
131
+ 48, 57, 65, 70, 97, 102, 48, 57,
132
+ 48, 57, 53, 48, 52, 54, 57, 48,
133
+ 53, 48, 57, 65, 70, 97, 102, 48,
134
+ 57, 65, 70, 97, 102, 48, 57, 65,
135
+ 70, 97, 102, 48, 57, 65, 70, 97,
136
+ 102, 50, 48, 49, 51, 57, 65, 70,
137
+ 97, 102, 46, 58, 48, 57, 65, 70,
138
+ 97, 102, 46, 58, 48, 57, 65, 70,
139
+ 97, 102, 46, 58, 48, 57, 65, 70,
140
+ 97, 102, 58, 58, 48, 57, 65, 70,
141
+ 97, 102, 58, 48, 57, 65, 70, 97,
142
+ 102, 46, 53, 58, 48, 52, 54, 57,
143
+ 65, 70, 97, 102, 46, 58, 48, 53,
144
+ 54, 57, 65, 70, 97, 102, 46, 58,
145
+ 48, 57, 65, 70, 97, 102, 46, 58,
146
+ 48, 57, 65, 70, 97, 102, 58, 48,
147
+ 57, 65, 70, 97, 102, 50, 48, 49,
148
+ 51, 57, 65, 70, 97, 102, 46, 58,
149
+ 48, 57, 65, 70, 97, 102, 46, 58,
150
+ 48, 57, 65, 70, 97, 102, 46, 58,
151
+ 48, 57, 65, 70, 97, 102, 58, 58,
152
+ 48, 57, 65, 70, 97, 102, 58, 48,
153
+ 57, 65, 70, 97, 102, 46, 53, 58,
154
+ 48, 52, 54, 57, 65, 70, 97, 102,
155
+ 46, 58, 48, 53, 54, 57, 65, 70,
156
+ 97, 102, 46, 58, 48, 57, 65, 70,
157
+ 97, 102, 46, 58, 48, 57, 65, 70,
158
+ 97, 102, 58, 48, 57, 65, 70, 97,
159
+ 102, 50, 48, 49, 51, 57, 65, 70,
160
+ 97, 102, 46, 58, 48, 57, 65, 70,
161
+ 97, 102, 46, 58, 48, 57, 65, 70,
162
+ 97, 102, 46, 58, 48, 57, 65, 70,
163
+ 97, 102, 58, 58, 48, 57, 65, 70,
164
+ 97, 102, 58, 48, 57, 65, 70, 97,
165
+ 102, 46, 53, 58, 48, 52, 54, 57,
166
+ 65, 70, 97, 102, 46, 58, 48, 53,
167
+ 54, 57, 65, 70, 97, 102, 46, 58,
168
+ 48, 57, 65, 70, 97, 102, 46, 58,
169
+ 48, 57, 65, 70, 97, 102, 58, 48,
170
+ 57, 65, 70, 97, 102, 50, 48, 49,
171
+ 51, 57, 65, 70, 97, 102, 46, 58,
172
+ 48, 57, 65, 70, 97, 102, 46, 58,
173
+ 48, 57, 65, 70, 97, 102, 46, 58,
174
+ 48, 57, 65, 70, 97, 102, 58, 58,
175
+ 48, 57, 65, 70, 97, 102, 58, 48,
176
+ 57, 65, 70, 97, 102, 46, 53, 58,
177
+ 48, 52, 54, 57, 65, 70, 97, 102,
178
+ 46, 58, 48, 53, 54, 57, 65, 70,
179
+ 97, 102, 46, 58, 48, 57, 65, 70,
180
+ 97, 102, 46, 58, 48, 57, 65, 70,
181
+ 97, 102, 58, 48, 57, 65, 70, 97,
182
+ 102, 50, 48, 49, 51, 57, 65, 70,
183
+ 97, 102, 46, 58, 48, 57, 65, 70,
184
+ 97, 102, 46, 58, 48, 57, 65, 70,
185
+ 97, 102, 46, 58, 48, 57, 65, 70,
186
+ 97, 102, 58, 58, 48, 57, 65, 70,
187
+ 97, 102, 58, 48, 57, 65, 70, 97,
188
+ 102, 46, 53, 58, 48, 52, 54, 57,
189
+ 65, 70, 97, 102, 46, 58, 48, 53,
190
+ 54, 57, 65, 70, 97, 102, 46, 58,
191
+ 48, 57, 65, 70, 97, 102, 46, 58,
192
+ 48, 57, 65, 70, 97, 102, 58, 48,
193
+ 57, 65, 70, 97, 102, 58, 48, 57,
194
+ 65, 70, 97, 102, 58, 48, 57, 65,
195
+ 70, 97, 102, 58, 48, 57, 65, 70,
196
+ 97, 102, 58, 0
197
+ ]
198
+
199
+ class << self
200
+ attr_accessor :_m_ipaddr_single_lengths
201
+ private :_m_ipaddr_single_lengths, :_m_ipaddr_single_lengths=
202
+ end
203
+ self._m_ipaddr_single_lengths = [
204
+ 0, 2, 2, 1, 1, 1, 1, 1,
205
+ 1, 1, 2, 1, 1, 1, 2, 1,
206
+ 2, 2, 1, 1, 1, 1, 1, 1,
207
+ 1, 1, 1, 1, 1, 1, 1, 1,
208
+ 1, 1, 1, 1, 1, 1, 1, 1,
209
+ 1, 1, 1, 1, 2, 2, 2, 2,
210
+ 1, 1, 1, 1, 3, 2, 2, 2,
211
+ 1, 0, 1, 1, 1, 1, 1, 1,
212
+ 3, 2, 2, 2, 1, 0, 0, 1,
213
+ 1, 1, 1, 0, 1, 1, 1, 1,
214
+ 0, 1, 1, 1, 1, 0, 1, 1,
215
+ 1, 1, 1, 2, 2, 2, 1, 1,
216
+ 1, 3, 2, 2, 2, 1, 1, 0,
217
+ 0, 0, 1, 0, 0, 0, 0, 0,
218
+ 1, 2, 2, 2, 1, 1, 1, 3,
219
+ 2, 2, 2, 1, 1, 2, 2, 2,
220
+ 1, 1, 1, 3, 2, 2, 2, 1,
221
+ 1, 2, 2, 2, 1, 1, 1, 3,
222
+ 2, 2, 2, 1, 1, 2, 2, 2,
223
+ 1, 1, 1, 3, 2, 2, 2, 1,
224
+ 1, 2, 2, 2, 1, 1, 1, 3,
225
+ 2, 2, 2, 1, 1, 1, 1, 1
226
+ ]
227
+
228
+ class << self
229
+ attr_accessor :_m_ipaddr_range_lengths
230
+ private :_m_ipaddr_range_lengths, :_m_ipaddr_range_lengths=
231
+ end
232
+ self._m_ipaddr_range_lengths = [
233
+ 0, 4, 3, 2, 1, 2, 1, 2,
234
+ 1, 0, 2, 1, 1, 0, 2, 1,
235
+ 3, 3, 0, 3, 3, 3, 3, 0,
236
+ 3, 3, 3, 3, 0, 3, 3, 3,
237
+ 3, 0, 3, 3, 3, 3, 0, 3,
238
+ 3, 3, 3, 0, 4, 3, 3, 3,
239
+ 0, 3, 3, 3, 4, 4, 3, 3,
240
+ 3, 3, 4, 4, 4, 4, 3, 3,
241
+ 4, 4, 3, 3, 0, 3, 3, 3,
242
+ 3, 3, 0, 3, 3, 3, 3, 0,
243
+ 3, 3, 3, 3, 0, 3, 3, 3,
244
+ 3, 0, 4, 3, 3, 3, 0, 3,
245
+ 3, 4, 4, 3, 3, 3, 3, 1,
246
+ 1, 0, 2, 1, 3, 3, 3, 3,
247
+ 4, 3, 3, 3, 0, 3, 3, 4,
248
+ 4, 3, 3, 3, 4, 3, 3, 3,
249
+ 0, 3, 3, 4, 4, 3, 3, 3,
250
+ 4, 3, 3, 3, 0, 3, 3, 4,
251
+ 4, 3, 3, 3, 4, 3, 3, 3,
252
+ 0, 3, 3, 4, 4, 3, 3, 3,
253
+ 4, 3, 3, 3, 0, 3, 3, 4,
254
+ 4, 3, 3, 3, 3, 3, 3, 0
255
+ ]
256
+
257
+ class << self
258
+ attr_accessor :_m_ipaddr_index_offsets
259
+ private :_m_ipaddr_index_offsets, :_m_ipaddr_index_offsets=
260
+ end
261
+ self._m_ipaddr_index_offsets = [
262
+ 0, 0, 7, 13, 17, 20, 24, 27,
263
+ 31, 34, 36, 41, 44, 47, 49, 54,
264
+ 57, 63, 69, 71, 76, 81, 86, 91,
265
+ 93, 98, 103, 108, 113, 115, 120, 125,
266
+ 130, 135, 137, 142, 147, 152, 157, 159,
267
+ 164, 169, 174, 179, 181, 188, 194, 200,
268
+ 206, 208, 213, 218, 223, 231, 238, 244,
269
+ 250, 255, 259, 265, 271, 277, 283, 288,
270
+ 293, 301, 308, 314, 320, 322, 326, 330,
271
+ 335, 340, 345, 347, 351, 356, 361, 366,
272
+ 368, 372, 377, 382, 387, 389, 393, 398,
273
+ 403, 408, 410, 416, 422, 428, 434, 436,
274
+ 441, 446, 454, 461, 467, 473, 478, 483,
275
+ 485, 487, 488, 492, 494, 498, 502, 506,
276
+ 510, 516, 522, 528, 534, 536, 541, 546,
277
+ 554, 561, 567, 573, 578, 584, 590, 596,
278
+ 602, 604, 609, 614, 622, 629, 635, 641,
279
+ 646, 652, 658, 664, 670, 672, 677, 682,
280
+ 690, 697, 703, 709, 714, 720, 726, 732,
281
+ 738, 740, 745, 750, 758, 765, 771, 777,
282
+ 782, 788, 794, 800, 806, 808, 813, 818,
283
+ 826, 833, 839, 845, 850, 855, 860, 865
284
+ ]
285
+
286
+ class << self
287
+ attr_accessor :_m_ipaddr_trans_targs
288
+ private :_m_ipaddr_trans_targs, :_m_ipaddr_trans_targs=
289
+ end
290
+ self._m_ipaddr_trans_targs = [
291
+ 64, 68, 2, 67, 102, 102, 0, 3,
292
+ 19, 16, 63, 63, 0, 14, 4, 12,
293
+ 0, 5, 12, 0, 10, 6, 8, 0,
294
+ 7, 8, 0, 106, 103, 104, 0, 7,
295
+ 9, 0, 7, 0, 7, 11, 8, 9,
296
+ 0, 7, 9, 0, 5, 13, 0, 5,
297
+ 0, 5, 15, 12, 13, 0, 5, 13,
298
+ 0, 3, 19, 17, 62, 62, 0, 3,
299
+ 19, 18, 18, 18, 0, 19, 0, 160,
300
+ 20, 20, 20, 0, 24, 21, 21, 21,
301
+ 0, 24, 22, 22, 22, 0, 24, 23,
302
+ 23, 23, 0, 24, 0, 148, 25, 25,
303
+ 25, 0, 29, 26, 26, 26, 0, 29,
304
+ 27, 27, 27, 0, 29, 28, 28, 28,
305
+ 0, 29, 0, 136, 30, 30, 30, 0,
306
+ 34, 31, 31, 31, 0, 34, 32, 32,
307
+ 32, 0, 34, 33, 33, 33, 0, 34,
308
+ 0, 124, 35, 35, 35, 0, 39, 36,
309
+ 36, 36, 0, 39, 37, 37, 37, 0,
310
+ 39, 38, 38, 38, 0, 39, 0, 112,
311
+ 40, 40, 40, 0, 44, 41, 41, 41,
312
+ 0, 44, 42, 42, 42, 0, 44, 43,
313
+ 43, 43, 0, 44, 0, 52, 111, 45,
314
+ 55, 56, 56, 0, 3, 49, 46, 51,
315
+ 51, 0, 3, 49, 47, 50, 50, 0,
316
+ 3, 49, 48, 48, 48, 0, 49, 0,
317
+ 105, 108, 108, 108, 0, 49, 48, 48,
318
+ 48, 0, 49, 50, 50, 50, 0, 3,
319
+ 53, 49, 46, 54, 51, 51, 0, 3,
320
+ 49, 47, 50, 50, 50, 0, 3, 49,
321
+ 50, 50, 50, 0, 3, 49, 54, 51,
322
+ 51, 0, 49, 51, 51, 51, 0, 108,
323
+ 108, 108, 0, 119, 113, 122, 123, 123,
324
+ 0, 131, 125, 134, 135, 135, 0, 143,
325
+ 137, 146, 147, 147, 0, 155, 149, 158,
326
+ 159, 159, 0, 19, 18, 18, 18, 0,
327
+ 19, 62, 62, 62, 0, 3, 65, 19,
328
+ 16, 66, 63, 63, 0, 3, 19, 17,
329
+ 62, 62, 62, 0, 3, 19, 62, 62,
330
+ 62, 0, 3, 19, 66, 63, 63, 0,
331
+ 69, 0, 172, 172, 172, 0, 71, 71,
332
+ 71, 0, 75, 72, 72, 72, 0, 75,
333
+ 73, 73, 73, 0, 75, 74, 74, 74,
334
+ 0, 75, 0, 76, 76, 76, 0, 80,
335
+ 77, 77, 77, 0, 80, 78, 78, 78,
336
+ 0, 80, 79, 79, 79, 0, 80, 0,
337
+ 81, 81, 81, 0, 85, 82, 82, 82,
338
+ 0, 85, 83, 83, 83, 0, 85, 84,
339
+ 84, 84, 0, 85, 0, 86, 86, 86,
340
+ 0, 90, 87, 87, 87, 0, 90, 88,
341
+ 88, 88, 0, 90, 89, 89, 89, 0,
342
+ 90, 0, 97, 91, 100, 101, 101, 0,
343
+ 3, 57, 92, 96, 96, 0, 3, 57,
344
+ 93, 95, 95, 0, 3, 57, 94, 94,
345
+ 94, 0, 57, 0, 57, 94, 94, 94,
346
+ 0, 57, 95, 95, 95, 0, 3, 98,
347
+ 57, 92, 99, 96, 96, 0, 3, 57,
348
+ 93, 95, 95, 95, 0, 3, 57, 95,
349
+ 95, 95, 0, 3, 57, 99, 96, 96,
350
+ 0, 57, 96, 96, 96, 0, 19, 63,
351
+ 63, 63, 0, 104, 0, 105, 0, 0,
352
+ 107, 104, 105, 0, 105, 0, 109, 109,
353
+ 109, 0, 110, 110, 110, 0, 105, 105,
354
+ 105, 0, 108, 108, 108, 0, 119, 113,
355
+ 122, 123, 123, 0, 3, 57, 114, 118,
356
+ 118, 0, 3, 57, 115, 117, 117, 0,
357
+ 3, 57, 116, 116, 116, 0, 57, 0,
358
+ 57, 116, 116, 116, 0, 57, 117, 117,
359
+ 117, 0, 3, 120, 57, 114, 121, 118,
360
+ 118, 0, 3, 57, 115, 117, 117, 117,
361
+ 0, 3, 57, 117, 117, 117, 0, 3,
362
+ 57, 121, 118, 118, 0, 57, 118, 118,
363
+ 118, 0, 131, 125, 134, 135, 135, 0,
364
+ 3, 58, 126, 130, 130, 0, 3, 58,
365
+ 127, 129, 129, 0, 3, 58, 128, 128,
366
+ 128, 0, 58, 0, 58, 128, 128, 128,
367
+ 0, 58, 129, 129, 129, 0, 3, 132,
368
+ 58, 126, 133, 130, 130, 0, 3, 58,
369
+ 127, 129, 129, 129, 0, 3, 58, 129,
370
+ 129, 129, 0, 3, 58, 133, 130, 130,
371
+ 0, 58, 130, 130, 130, 0, 143, 137,
372
+ 146, 147, 147, 0, 3, 59, 138, 142,
373
+ 142, 0, 3, 59, 139, 141, 141, 0,
374
+ 3, 59, 140, 140, 140, 0, 59, 0,
375
+ 59, 140, 140, 140, 0, 59, 141, 141,
376
+ 141, 0, 3, 144, 59, 138, 145, 142,
377
+ 142, 0, 3, 59, 139, 141, 141, 141,
378
+ 0, 3, 59, 141, 141, 141, 0, 3,
379
+ 59, 145, 142, 142, 0, 59, 142, 142,
380
+ 142, 0, 155, 149, 158, 159, 159, 0,
381
+ 3, 60, 150, 154, 154, 0, 3, 60,
382
+ 151, 153, 153, 0, 3, 60, 152, 152,
383
+ 152, 0, 60, 0, 60, 152, 152, 152,
384
+ 0, 60, 153, 153, 153, 0, 3, 156,
385
+ 60, 150, 157, 154, 154, 0, 3, 60,
386
+ 151, 153, 153, 153, 0, 3, 60, 153,
387
+ 153, 153, 0, 3, 60, 157, 154, 154,
388
+ 0, 60, 154, 154, 154, 0, 167, 161,
389
+ 170, 171, 171, 0, 3, 61, 162, 166,
390
+ 166, 0, 3, 61, 163, 165, 165, 0,
391
+ 3, 61, 164, 164, 164, 0, 61, 0,
392
+ 61, 164, 164, 164, 0, 61, 165, 165,
393
+ 165, 0, 3, 168, 61, 162, 169, 166,
394
+ 166, 0, 3, 61, 163, 165, 165, 165,
395
+ 0, 3, 61, 165, 165, 165, 0, 3,
396
+ 61, 169, 166, 166, 0, 61, 166, 166,
397
+ 166, 0, 70, 173, 173, 173, 0, 70,
398
+ 174, 174, 174, 0, 70, 175, 175, 175,
399
+ 0, 70, 0, 0
400
+ ]
401
+
402
+ class << self
403
+ attr_accessor :m_ipaddr_start
404
+ end
405
+ self.m_ipaddr_start = 1;
406
+ class << self
407
+ attr_accessor :m_ipaddr_first_final
408
+ end
409
+ self.m_ipaddr_first_final = 103;
410
+ class << self
411
+ attr_accessor :m_ipaddr_error
412
+ end
413
+ self.m_ipaddr_error = 0;
414
+
415
+ class << self
416
+ attr_accessor :m_ipaddr_en_main
417
+ end
418
+ self.m_ipaddr_en_main = 1;
419
+
420
+
421
+ # line 18 "lib/uri_scanner/ip_address.rl"
422
+ end
423
+
424
+ def is_valid?(data)
425
+
426
+ # line 427 "lib/uri_scanner/ip_address.rb"
427
+ begin
428
+ p ||= 0
429
+ pe ||= data.length
430
+ cs = m_ipaddr_start
431
+ end
432
+
433
+ # line 22 "lib/uri_scanner/ip_address.rl"
434
+
435
+ # line 436 "lib/uri_scanner/ip_address.rb"
436
+ begin
437
+ _klen, _trans, _keys = nil
438
+ _goto_level = 0
439
+ _resume = 10
440
+ _eof_trans = 15
441
+ _again = 20
442
+ _test_eof = 30
443
+ _out = 40
444
+ while true
445
+ _trigger_goto = false
446
+ if _goto_level <= 0
447
+ if p == pe
448
+ _goto_level = _test_eof
449
+ next
450
+ end
451
+ if cs == 0
452
+ _goto_level = _out
453
+ next
454
+ end
455
+ end
456
+ if _goto_level <= _resume
457
+ _keys = _m_ipaddr_key_offsets[cs]
458
+ _trans = _m_ipaddr_index_offsets[cs]
459
+ _klen = _m_ipaddr_single_lengths[cs]
460
+ _break_match = false
461
+
462
+ begin
463
+ if _klen > 0
464
+ _lower = _keys
465
+ _upper = _keys + _klen - 1
466
+
467
+ loop do
468
+ break if _upper < _lower
469
+ _mid = _lower + ( (_upper - _lower) >> 1 )
470
+
471
+ if data[p].ord < _m_ipaddr_trans_keys[_mid]
472
+ _upper = _mid - 1
473
+ elsif data[p].ord > _m_ipaddr_trans_keys[_mid]
474
+ _lower = _mid + 1
475
+ else
476
+ _trans += (_mid - _keys)
477
+ _break_match = true
478
+ break
479
+ end
480
+ end # loop
481
+ break if _break_match
482
+ _keys += _klen
483
+ _trans += _klen
484
+ end
485
+ _klen = _m_ipaddr_range_lengths[cs]
486
+ if _klen > 0
487
+ _lower = _keys
488
+ _upper = _keys + (_klen << 1) - 2
489
+ loop do
490
+ break if _upper < _lower
491
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1)
492
+ if data[p].ord < _m_ipaddr_trans_keys[_mid]
493
+ _upper = _mid - 2
494
+ elsif data[p].ord > _m_ipaddr_trans_keys[_mid+1]
495
+ _lower = _mid + 2
496
+ else
497
+ _trans += ((_mid - _keys) >> 1)
498
+ _break_match = true
499
+ break
500
+ end
501
+ end # loop
502
+ break if _break_match
503
+ _trans += _klen
504
+ end
505
+ end while false
506
+ cs = _m_ipaddr_trans_targs[_trans]
507
+ end
508
+ if _goto_level <= _again
509
+ if cs == 0
510
+ _goto_level = _out
511
+ next
512
+ end
513
+ p += 1
514
+ if p != pe
515
+ _goto_level = _resume
516
+ next
517
+ end
518
+ end
519
+ if _goto_level <= _test_eof
520
+ end
521
+ if _goto_level <= _out
522
+ break
523
+ end
524
+ end
525
+ end
526
+
527
+ # line 23 "lib/uri_scanner/ip_address.rl"
528
+ cs >= m_ipaddr_first_final
529
+ end
530
+ end
531
+
532
+ # EOF