maxmind-db 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +13 -2
  3. data/Gemfile +8 -0
  4. data/Gemfile.lock +34 -0
  5. data/README.md +2 -2
  6. data/Rakefile +2 -0
  7. data/bin/mmdb-benchmark.rb +4 -1
  8. data/lib/maxmind/db.rb +49 -27
  9. data/lib/maxmind/db/decoder.rb +26 -26
  10. data/lib/maxmind/db/errors.rb +3 -1
  11. data/lib/maxmind/db/file_reader.rb +5 -3
  12. data/lib/maxmind/db/memory_reader.rb +3 -1
  13. data/lib/maxmind/db/metadata.rb +3 -1
  14. data/maxmind-db.gemspec +5 -2
  15. data/test/mmdb_util.rb +2 -0
  16. data/test/test_decoder.rb +2 -0
  17. data/test/test_reader.rb +117 -6
  18. metadata +7 -64
  19. data/test/data/LICENSE +0 -4
  20. data/test/data/MaxMind-DB-spec.md +0 -558
  21. data/test/data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  22. data/test/data/README.md +0 -4
  23. data/test/data/bad-data/README.md +0 -7
  24. data/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
  25. data/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
  26. data/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +0 -1
  27. data/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
  28. data/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
  29. data/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb +0 -1
  30. data/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +0 -1
  31. data/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
  32. data/test/data/perltidyrc +0 -12
  33. data/test/data/source-data/GeoIP2-Anonymous-IP-Test.json +0 -41
  34. data/test/data/source-data/GeoIP2-City-Test.json +0 -12852
  35. data/test/data/source-data/GeoIP2-Connection-Type-Test.json +0 -102
  36. data/test/data/source-data/GeoIP2-Country-Test.json +0 -11347
  37. data/test/data/source-data/GeoIP2-DensityIncome-Test.json +0 -14
  38. data/test/data/source-data/GeoIP2-Domain-Test.json +0 -452
  39. data/test/data/source-data/GeoIP2-Enterprise-Test.json +0 -673
  40. data/test/data/source-data/GeoIP2-ISP-Test.json +0 -12585
  41. data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +0 -1598
  42. data/test/data/source-data/GeoIP2-User-Count-Test.json +0 -2824
  43. data/test/data/source-data/GeoLite2-ASN-Test.json +0 -37
  44. data/test/data/source-data/README +0 -15
  45. data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
  46. data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
  47. data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
  48. data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
  49. data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
  50. data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
  51. data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
  52. data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
  53. data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
  54. data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
  55. data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
  56. data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
  57. data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
  58. data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
  59. data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
  60. data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
  61. data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
  62. data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
  63. data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
  64. data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
  65. data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
  66. data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
  67. data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
  68. data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
  69. data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  70. data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
  71. data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
  72. data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
  73. data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
  74. data/test/data/test-data/README.md +0 -26
  75. data/test/data/test-data/maps-with-pointers.raw +0 -0
  76. data/test/data/test-data/write-test-data.pl +0 -620
  77. data/test/data/tidyall.ini +0 -5
@@ -1,673 +0,0 @@
1
- [
2
- {
3
- "::2.125.160.216/125" : {
4
- "city" : {
5
- "confidence" : 50,
6
- "geoname_id" : "2655045",
7
- "names" : {
8
- "en" : "Boxford"
9
- }
10
- },
11
- "continent" : {
12
- "code" : "EU",
13
- "geoname_id" : 6255148,
14
- "names" : {
15
- "de" : "Europa",
16
- "en" : "Europe",
17
- "es" : "Europa",
18
- "fr" : "Europe",
19
- "ja" : "ヨーロッパ",
20
- "pt-BR" : "Europa",
21
- "ru" : "Европа",
22
- "zh-CN" : "欧洲"
23
- }
24
- },
25
- "country" : {
26
- "confidence" : 95,
27
- "geoname_id" : 2635167,
28
- "is_in_european_union" : true,
29
- "iso_code" : "GB",
30
- "names" : {
31
- "de" : "Vereinigtes Königreich",
32
- "en" : "United Kingdom",
33
- "es" : "Reino Unido",
34
- "fr" : "Royaume-Uni",
35
- "ja" : "イギリス",
36
- "pt-BR" : "Reino Unido",
37
- "ru" : "Великобритания",
38
- "zh-CN" : "英国"
39
- }
40
- },
41
- "location" : {
42
- "accuracy_radius" : 100,
43
- "latitude" : "51.7500",
44
- "longitude" : "-1.2500",
45
- "time_zone" : "Europe/London"
46
- },
47
- "postal" : {
48
- "code" : "OX1",
49
- "confidence" : 20
50
- },
51
- "registered_country" : {
52
- "geoname_id" : 3017382,
53
- "is_in_european_union" : true,
54
- "iso_code" : "FR",
55
- "names" : {
56
- "de" : "Frankreich",
57
- "en" : "France",
58
- "es" : "Francia",
59
- "fr" : "France",
60
- "ja" : "フランス共和国",
61
- "pt-BR" : "França",
62
- "ru" : "Франция",
63
- "zh-CN" : "法国"
64
- }
65
- },
66
- "subdivisions" : [
67
- {
68
- "confidence" : 70,
69
- "geoname_id" : 6269131,
70
- "iso_code" : "ENG",
71
- "names" : {
72
- "en" : "England",
73
- "es" : "Inglaterra",
74
- "fr" : "Angleterre",
75
- "pt-BR" : "Inglaterra"
76
- }
77
- },
78
- {
79
- "geoname_id" : 3333217,
80
- "iso_code" : "WBK",
81
- "names" : {
82
- "en" : "West Berkshire",
83
- "ru" : "Западный Беркшир",
84
- "zh-CN" : "西伯克郡"
85
- }
86
- }
87
- ]
88
- }
89
- },
90
- {
91
- "::67.43.156.0/120" : {
92
- "continent" : {
93
- "code" : "AS",
94
- "geoname_id" : 6255147,
95
- "names" : {
96
- "de" : "Asien",
97
- "en" : "Asia",
98
- "es" : "Asia",
99
- "fr" : "Asie",
100
- "ja" : "アジア",
101
- "pt-BR" : "Ásia",
102
- "ru" : "Азия",
103
- "zh-CN" : "亚洲"
104
- }
105
- },
106
- "country" : {
107
- "confidence" : 99,
108
- "geoname_id" : 1252634,
109
- "iso_code" : "BT",
110
- "names" : {
111
- "de" : "Bhutan",
112
- "en" : "Bhutan",
113
- "es" : "Bután",
114
- "fr" : "Bhutan",
115
- "ja" : "ブータン王国",
116
- "pt-BR" : "Butão",
117
- "ru" : "Бутан",
118
- "zh-CN" : "不丹"
119
- }
120
- },
121
- "location" : {
122
- "accuracy_radius" : 534,
123
- "latitude" : "27.5000",
124
- "longitude" : "90.5000",
125
- "time_zone" : "Asia/Thimphu"
126
- },
127
- "registered_country" : {
128
- "geoname_id" : 798549,
129
- "is_in_european_union" : true,
130
- "iso_code" : "RO",
131
- "names" : {
132
- "de" : "Rumänien",
133
- "en" : "Romania",
134
- "es" : "Rumanía",
135
- "fr" : "Roumanie",
136
- "ja" : "ルーマニア",
137
- "pt-BR" : "Romênia",
138
- "ru" : "Румыния",
139
- "zh-CN" : "罗马尼亚"
140
- }
141
- },
142
- "traits" : {
143
- "autonomous_system_number" : 35908,
144
- "domain" : "shoesfin.NET",
145
- "is_anonymous_proxy" : true,
146
- "isp" : "Loud Packet",
147
- "organization" : "zudoarichikito_",
148
- "user_type" : "search_engine_spider"
149
- }
150
- }
151
- },
152
- {
153
- "::74.209.24.0/116" : {
154
- "city" : {
155
- "confidence" : "11",
156
- "geoname_id" : "5112335",
157
- "names" : {
158
- "en" : "Chatham"
159
- }
160
- },
161
- "continent" : {
162
- "code" : "NA",
163
- "geoname_id" : "6255149",
164
- "names" : {
165
- "de" : "Nordamerika",
166
- "en" : "North America",
167
- "es" : "Norteamérica",
168
- "fr" : "Amérique du Nord",
169
- "ja" : "北アメリカ",
170
- "pt-BR" : "América do Norte",
171
- "ru" : "Северная Америка",
172
- "zh-CN" : "北美洲"
173
- }
174
- },
175
- "country" : {
176
- "confidence" : "99",
177
- "geoname_id" : "6252001",
178
- "iso_code" : "US",
179
- "names" : {
180
- "de" : "USA",
181
- "en" : "United States",
182
- "es" : "Estados Unidos",
183
- "fr" : "États-Unis",
184
- "ja" : "アメリカ合衆国",
185
- "pt-BR" : "Estados Unidos",
186
- "ru" : "США",
187
- "zh-CN" : "美国"
188
- }
189
- },
190
- "location" : {
191
- "accuracy_radius" : "27",
192
- "latitude" : "42.347800",
193
- "longitude" : "-73.554900",
194
- "metro_code" : "532",
195
- "time_zone" : "America/New_York"
196
- },
197
- "postal" : {
198
- "code" : "12037",
199
- "confidence" : "11"
200
- },
201
- "registered_country" : {
202
- "geoname_id" : "6252001",
203
- "iso_code" : "US",
204
- "names" : {
205
- "de" : "USA",
206
- "en" : "United States",
207
- "es" : "Estados Unidos",
208
- "fr" : "États-Unis",
209
- "ja" : "アメリカ合衆国",
210
- "pt-BR" : "Estados Unidos",
211
- "ru" : "США",
212
- "zh-CN" : "美国"
213
- }
214
- },
215
- "subdivisions" : [
216
- {
217
- "confidence" : "93",
218
- "geoname_id" : "5128638",
219
- "iso_code" : "NY",
220
- "names" : {
221
- "de" : "New York",
222
- "en" : "New York",
223
- "es" : "Nueva York",
224
- "fr" : "New York",
225
- "ja" : "ニューヨーク州",
226
- "pt-BR" : "Nova Iorque",
227
- "ru" : "Нью-Йорк",
228
- "zh-CN" : "纽约州"
229
- }
230
- }
231
- ],
232
- "traits" : {
233
- "autonomous_system_number" : "14671",
234
- "autonomous_system_organization" : "FairPoint Communications",
235
- "connection_type" : "Cable/DSL",
236
- "domain" : "frpt.net",
237
- "is_anonymous_proxy" : true,
238
- "is_legitimate_proxy" : true,
239
- "is_satellite_provider" : true,
240
- "isp" : "Fairpoint Communications",
241
- "organization" : "Fairpoint Communications",
242
- "user_type" : "residential"
243
- }
244
- }
245
- },
246
- {
247
- "::81.2.69.160/123" : {
248
- "city" : {
249
- "confidence" : 42,
250
- "geoname_id" : "2643743",
251
- "names" : {
252
- "de" : "London",
253
- "en" : "London",
254
- "es" : "Londres",
255
- "fr" : "Londres",
256
- "ja" : "ロンドン",
257
- "pt-BR" : "Londres",
258
- "ru" : "Лондон"
259
- }
260
- },
261
- "continent" : {
262
- "code" : "EU",
263
- "geoname_id" : 6255148,
264
- "names" : {
265
- "de" : "Europa",
266
- "en" : "Europe",
267
- "es" : "Europa",
268
- "fr" : "Europe",
269
- "ja" : "ヨーロッパ",
270
- "pt-BR" : "Europa",
271
- "ru" : "Европа",
272
- "zh-CN" : "欧洲"
273
- }
274
- },
275
- "country" : {
276
- "confidence" : 99,
277
- "geoname_id" : 2635167,
278
- "is_in_european_union" : true,
279
- "iso_code" : "GB",
280
- "names" : {
281
- "de" : "Vereinigtes Königreich",
282
- "en" : "United Kingdom",
283
- "es" : "Reino Unido",
284
- "fr" : "Royaume-Uni",
285
- "ja" : "イギリス",
286
- "pt-BR" : "Reino Unido",
287
- "ru" : "Великобритания",
288
- "zh-CN" : "英国"
289
- }
290
- },
291
- "location" : {
292
- "accuracy_radius" : 100,
293
- "latitude" : "51.5142",
294
- "longitude" : "-0.0931",
295
- "time_zone" : "Europe/London"
296
- },
297
- "registered_country" : {
298
- "geoname_id" : 6252001,
299
- "iso_code" : "US",
300
- "names" : {
301
- "de" : "USA",
302
- "en" : "United States",
303
- "es" : "Estados Unidos",
304
- "fr" : "États-Unis",
305
- "ja" : "アメリカ合衆国",
306
- "pt-BR" : "Estados Unidos",
307
- "ru" : "США",
308
- "zh-CN" : "美国"
309
- }
310
- },
311
- "subdivisions" : [
312
- {
313
- "confidence" : 42,
314
- "geoname_id" : 6269131,
315
- "iso_code" : "ENG",
316
- "names" : {
317
- "en" : "England",
318
- "es" : "Inglaterra",
319
- "fr" : "Angleterre",
320
- "pt-BR" : "Inglaterra"
321
- }
322
- }
323
- ],
324
- "traits" : {
325
- "connection_type" : "Corporate",
326
- "domain" : "in-addr.arpa",
327
- "isp" : "Andrews & Arnold Ltd",
328
- "organization" : "STONEHOUSE office network",
329
- "user_type" : "government"
330
- }
331
- }
332
- },
333
- {
334
- "::89.160.20.112/124" : {
335
- "city" : {
336
- "confidence" : 51,
337
- "geoname_id" : "2694762",
338
- "names" : {
339
- "de" : "Linköping",
340
- "en" : "Linköping",
341
- "fr" : "Linköping",
342
- "ja" : "リンシェーピング",
343
- "zh-CN" : "林雪平"
344
- }
345
- },
346
- "continent" : {
347
- "code" : "EU",
348
- "geoname_id" : 6255148,
349
- "names" : {
350
- "de" : "Europa",
351
- "en" : "Europe",
352
- "es" : "Europa",
353
- "fr" : "Europe",
354
- "ja" : "ヨーロッパ",
355
- "pt-BR" : "Europa",
356
- "ru" : "Европа",
357
- "zh-CN" : "欧洲"
358
- }
359
- },
360
- "country" : {
361
- "confidence" : 99,
362
- "geoname_id" : 2661886,
363
- "is_in_european_union" : true,
364
- "iso_code" : "SE",
365
- "names" : {
366
- "de" : "Schweden",
367
- "en" : "Sweden",
368
- "es" : "Suecia",
369
- "fr" : "Suède",
370
- "ja" : "スウェーデン王国",
371
- "pt-BR" : "Suécia",
372
- "ru" : "Швеция",
373
- "zh-CN" : "瑞典"
374
- }
375
- },
376
- "location" : {
377
- "accuracy_radius" : 76,
378
- "latitude" : "58.4167",
379
- "longitude" : "15.6167",
380
- "time_zone" : "Europe/Stockholm"
381
- },
382
- "registered_country" : {
383
- "geoname_id" : 2921044,
384
- "is_in_european_union" : true,
385
- "iso_code" : "DE",
386
- "names" : {
387
- "de" : "Deutschland",
388
- "en" : "Germany",
389
- "es" : "Alemania",
390
- "fr" : "Allemagne",
391
- "ja" : "ドイツ連邦共和国",
392
- "pt-BR" : "Alemanha",
393
- "ru" : "Германия",
394
- "zh-CN" : "德国"
395
- }
396
- },
397
- "subdivisions" : [
398
- {
399
- "confidence" : 51,
400
- "geoname_id" : 2685867,
401
- "iso_code" : "E",
402
- "names" : {
403
- "en" : "Östergötland County",
404
- "fr" : "Comté d'Östergötland"
405
- }
406
- }
407
- ],
408
- "traits" : {
409
- "autonomous_system_number" : 29518,
410
- "autonomous_system_organization" : "Bredband2 AB",
411
- "connection_type" : "Corporate",
412
- "domain" : "bredband2.com",
413
- "isp" : "Bredband2 AB",
414
- "organization" : "Bevtec",
415
- "user_type" : "government"
416
- }
417
- }
418
- },
419
- {
420
- "::175.16.199.0/120" : {
421
- "city" : {
422
- "confidence" : 50,
423
- "geoname_id" : 2038180,
424
- "names" : {
425
- "de" : "Chángchūn",
426
- "en" : "Changchun",
427
- "fr" : "Changchun",
428
- "ja" : "長春市",
429
- "ru" : "Чанчунь",
430
- "zh-CN" : "长春"
431
- }
432
- },
433
- "continent" : {
434
- "code" : "AS",
435
- "geoname_id" : 6255147,
436
- "names" : {
437
- "de" : "Asien",
438
- "en" : "Asia",
439
- "es" : "Asia",
440
- "fr" : "Asie",
441
- "ja" : "アジア",
442
- "pt-BR" : "Ásia",
443
- "ru" : "Азия",
444
- "zh-CN" : "亚洲"
445
- }
446
- },
447
- "country" : {
448
- "confidence" : 95,
449
- "geoname_id" : 1814991,
450
- "iso_code" : "CN",
451
- "names" : {
452
- "de" : "China",
453
- "en" : "China",
454
- "es" : "China",
455
- "fr" : "Chine",
456
- "ja" : "中国",
457
- "pt-BR" : "China",
458
- "ru" : "Китай",
459
- "zh-CN" : "中国"
460
- }
461
- },
462
- "location" : {
463
- "accuracy_radius" : 100,
464
- "latitude" : 43.88,
465
- "longitude" : 125.3228,
466
- "time_zone" : "Asia/Harbin"
467
- },
468
- "registered_country" : {
469
- "geoname_id" : 1814991,
470
- "iso_code" : "CN",
471
- "names" : {
472
- "de" : "China",
473
- "en" : "China",
474
- "es" : "China",
475
- "fr" : "Chine",
476
- "ja" : "中国",
477
- "pt-BR" : "China",
478
- "ru" : "Китай",
479
- "zh-CN" : "中国"
480
- }
481
- },
482
- "subdivisions" : [
483
- {
484
- "confidence" : 70,
485
- "geoname_id" : 2036500,
486
- "iso_code" : "22",
487
- "names" : {
488
- "en" : "Jilin Sheng",
489
- "zh-CN" : "吉林"
490
- }
491
- }
492
- ],
493
- "traits" : {
494
- "user_type" : "dialup"
495
- }
496
- }
497
- },
498
- {
499
- "::202.196.224.0/116" : {
500
- "continent" : {
501
- "code" : "AS",
502
- "geoname_id" : 6255147,
503
- "names" : {
504
- "de" : "Asien",
505
- "en" : "Asia",
506
- "es" : "Asia",
507
- "fr" : "Asie",
508
- "ja" : "アジア",
509
- "pt-BR" : "Ásia",
510
- "ru" : "Азия",
511
- "zh-CN" : "亚洲"
512
- }
513
- },
514
- "country" : {
515
- "confidence" : 95,
516
- "geoname_id" : 1694008,
517
- "iso_code" : "PH",
518
- "names" : {
519
- "de" : "Philippinen",
520
- "en" : "Philippines",
521
- "es" : "Filipinas",
522
- "fr" : "Philippines",
523
- "ja" : "フィリピン共和国",
524
- "pt-BR" : "Filipinas",
525
- "ru" : "Филиппины",
526
- "zh-CN" : "菲律宾"
527
- }
528
- },
529
- "location" : {
530
- "accuracy_radius" : 121,
531
- "latitude" : "13",
532
- "longitude" : "122",
533
- "time_zone" : "Asia/Manila"
534
- },
535
- "postal" : {
536
- "code" : "34021",
537
- "confidence" : 20
538
- },
539
- "registered_country" : {
540
- "geoname_id" : 1694008,
541
- "iso_code" : "PH",
542
- "names" : {
543
- "de" : "Philippinen",
544
- "en" : "Philippines",
545
- "es" : "Filipinas",
546
- "fr" : "Philippines",
547
- "ja" : "フィリピン共和国",
548
- "pt-BR" : "Filipinas",
549
- "ru" : "Филиппины",
550
- "zh-CN" : "菲律宾"
551
- }
552
- },
553
- "represented_country" : {
554
- "geoname_id" : 6252001,
555
- "iso_code" : "US",
556
- "names" : {
557
- "de" : "USA",
558
- "en" : "United States",
559
- "es" : "Estados Unidos",
560
- "fr" : "États-Unis",
561
- "ja" : "アメリカ合衆国",
562
- "pt-BR" : "Estados Unidos",
563
- "ru" : "США",
564
- "zh-CN" : "美国"
565
- },
566
- "type" : "military"
567
- }
568
- }
569
- },
570
- {
571
- "::216.160.83.56/125" : {
572
- "city" : {
573
- "confidence" : 40,
574
- "geoname_id" : "5803556",
575
- "names" : {
576
- "en" : "Milton",
577
- "ru" : "Мильтон"
578
- }
579
- },
580
- "continent" : {
581
- "code" : "NA",
582
- "geoname_id" : 6255149,
583
- "names" : {
584
- "de" : "Nordamerika",
585
- "en" : "North America",
586
- "es" : "América del Norte",
587
- "fr" : "Amérique du Nord",
588
- "ja" : "北アメリカ",
589
- "pt-BR" : "América do Norte",
590
- "ru" : "Северная Америка",
591
- "zh-CN" : "北美洲"
592
- }
593
- },
594
- "country" : {
595
- "confidence" : 99,
596
- "geoname_id" : 6252001,
597
- "iso_code" : "US",
598
- "names" : {
599
- "de" : "USA",
600
- "en" : "United States",
601
- "es" : "Estados Unidos",
602
- "fr" : "États-Unis",
603
- "ja" : "アメリカ合衆国",
604
- "pt-BR" : "Estados Unidos",
605
- "ru" : "США",
606
- "zh-CN" : "美国"
607
- }
608
- },
609
- "location" : {
610
- "accuracy_radius" : 22,
611
- "latitude" : "47.2513",
612
- "longitude" : "-122.3149",
613
- "metro_code" : "819",
614
- "time_zone" : "America/Los_Angeles"
615
- },
616
- "postal" : {
617
- "code" : "98354",
618
- "confidence" : 40
619
- },
620
- "registered_country" : {
621
- "geoname_id" : 2635167,
622
- "is_in_european_union" : true,
623
- "iso_code" : "GB",
624
- "names" : {
625
- "de" : "Vereinigtes Königreich",
626
- "en" : "United Kingdom",
627
- "es" : "Reino Unido",
628
- "fr" : "Royaume-Uni",
629
- "ja" : "イギリス",
630
- "pt-BR" : "Reino Unido",
631
- "ru" : "Великобритания",
632
- "zh-CN" : "英国"
633
- }
634
- },
635
- "subdivisions" : [
636
- {
637
- "confidence" : 99,
638
- "geoname_id" : 5815135,
639
- "iso_code" : "WA",
640
- "names" : {
641
- "en" : "Washington",
642
- "es" : "Washington",
643
- "fr" : "État de Washington",
644
- "ja" : "ワシントン州",
645
- "ru" : "Вашингтон",
646
- "zh-CN" : "华盛顿州"
647
- }
648
- }
649
- ],
650
- "traits" : {
651
- "autonomous_system_number" : 209,
652
- "connection_type" : "Cable/DSL",
653
- "isp" : "Century Link",
654
- "organization" : "Lariat Software",
655
- "user_type" : "government"
656
- }
657
- }
658
- },
659
- {
660
- "::212.47.235.81/128" : {
661
- "traits" : {
662
- "is_anonymous_proxy" : true
663
- }
664
- }
665
- },
666
- {
667
- "::212.47.235.82/128" : {
668
- "traits" : {
669
- "is_satellite_provider" : true
670
- }
671
- }
672
- }
673
- ]