maxmind-geoip2 0.2.0 → 0.7.0

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