geoip2_c 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ubuntu.yml +33 -0
  3. data/.github/workflows/windows.yml +52 -0
  4. data/README.md +22 -10
  5. data/docker-compose.yml +22 -1
  6. data/dockerfiles/{Dockerfile-ruby2.3 → Dockerfile-ruby2.5} +1 -1
  7. data/dockerfiles/{Dockerfile-ruby2.1 → Dockerfile-ruby2.6} +1 -1
  8. data/dockerfiles/{Dockerfile-ruby2.2 → Dockerfile-ruby2.7} +1 -1
  9. data/ext/geoip2/extconf.rb +11 -4
  10. data/ext/geoip2/geoip2.c +63 -18
  11. data/ext/geoip2/libmaxminddb/.gitignore +3 -0
  12. data/ext/geoip2/libmaxminddb/.travis.yml +24 -2
  13. data/ext/geoip2/libmaxminddb/Changes.md +39 -0
  14. data/ext/geoip2/libmaxminddb/README.dev.md +41 -30
  15. data/ext/geoip2/libmaxminddb/README.md +3 -3
  16. data/ext/geoip2/libmaxminddb/bin/Makefile.am +5 -0
  17. data/ext/geoip2/libmaxminddb/bin/mmdblookup.c +333 -15
  18. data/ext/geoip2/libmaxminddb/configure.ac +5 -5
  19. data/ext/geoip2/libmaxminddb/dev-bin/ppa-release.sh +8 -5
  20. data/ext/geoip2/libmaxminddb/dev-bin/release.sh +7 -0
  21. data/ext/geoip2/libmaxminddb/dev-bin/valgrind-all.pl +10 -3
  22. data/ext/geoip2/libmaxminddb/include/maxminddb.h +11 -2
  23. data/ext/geoip2/libmaxminddb/projects/VS12/libmaxminddb.vcxproj +3 -1
  24. data/ext/geoip2/libmaxminddb/projects/VS12/libmaxminddb.vcxproj.filters +7 -1
  25. data/ext/geoip2/libmaxminddb/src/Makefile.am +18 -2
  26. data/ext/geoip2/libmaxminddb/src/data-pool.c +180 -0
  27. data/ext/geoip2/libmaxminddb/src/data-pool.h +52 -0
  28. data/ext/geoip2/libmaxminddb/src/maxminddb.c +58 -48
  29. data/ext/geoip2/libmaxminddb/t/Makefile.am +6 -2
  30. data/ext/geoip2/libmaxminddb/t/bad_databases_t.c +1 -0
  31. data/ext/geoip2/libmaxminddb/t/basic_lookup_t.c +35 -0
  32. data/ext/geoip2/libmaxminddb/t/data-pool-t.c +374 -0
  33. data/ext/geoip2/libmaxminddb/t/external_symbols_t.pl +106 -0
  34. data/ext/geoip2/libmaxminddb/t/libtap/.gitignore +13 -0
  35. data/ext/geoip2/libmaxminddb/t/libtap/.travis.yml +13 -0
  36. data/ext/geoip2/libmaxminddb/t/libtap/COPYING +165 -0
  37. data/ext/geoip2/libmaxminddb/t/libtap/INSTALL +41 -0
  38. data/ext/geoip2/libmaxminddb/t/libtap/Makefile +72 -0
  39. data/ext/geoip2/libmaxminddb/t/libtap/Makefile.win +37 -0
  40. data/ext/geoip2/libmaxminddb/t/libtap/README.md +268 -0
  41. data/ext/geoip2/libmaxminddb/t/libtap/t/cmp_mem.c +20 -0
  42. data/ext/geoip2/libmaxminddb/t/libtap/t/cmp_mem.expected +28 -0
  43. data/ext/geoip2/libmaxminddb/t/libtap/t/cmpok.c +16 -0
  44. data/ext/geoip2/libmaxminddb/t/libtap/t/cmpok.expected +37 -0
  45. data/ext/geoip2/libmaxminddb/t/libtap/t/diag.c +10 -0
  46. data/ext/geoip2/libmaxminddb/t/libtap/t/diag.expected +2 -0
  47. data/ext/geoip2/libmaxminddb/t/libtap/t/diesok.c +14 -0
  48. data/ext/geoip2/libmaxminddb/t/libtap/t/diesok.expected +6 -0
  49. data/ext/geoip2/libmaxminddb/t/libtap/t/is.c +24 -0
  50. data/ext/geoip2/libmaxminddb/t/libtap/t/is.expected +58 -0
  51. data/ext/geoip2/libmaxminddb/t/libtap/t/like.c +10 -0
  52. data/ext/geoip2/libmaxminddb/t/libtap/t/like.expected +4 -0
  53. data/ext/geoip2/libmaxminddb/t/libtap/t/simple.c +31 -0
  54. data/ext/geoip2/libmaxminddb/t/libtap/t/simple.expected +32 -0
  55. data/ext/geoip2/libmaxminddb/t/libtap/t/skip.c +23 -0
  56. data/ext/geoip2/libmaxminddb/t/libtap/t/skip.expected +9 -0
  57. data/ext/geoip2/libmaxminddb/t/libtap/t/synopsis.c +13 -0
  58. data/ext/geoip2/libmaxminddb/t/libtap/t/synopsis.expected +9 -0
  59. data/ext/geoip2/libmaxminddb/t/libtap/t/test.c +28 -0
  60. data/ext/geoip2/libmaxminddb/t/libtap/t/todo.c +17 -0
  61. data/ext/geoip2/libmaxminddb/t/libtap/t/todo.expected +11 -0
  62. data/ext/geoip2/libmaxminddb/t/libtap/tap.c +354 -0
  63. data/ext/geoip2/libmaxminddb/t/libtap/tap.h +115 -0
  64. data/ext/geoip2/libmaxminddb/t/maxmind-db/.gitattributes +1 -0
  65. data/ext/geoip2/libmaxminddb/t/maxmind-db/.gitconfig +2 -0
  66. data/ext/geoip2/libmaxminddb/t/maxmind-db/.gitignore +2 -0
  67. data/ext/geoip2/libmaxminddb/t/maxmind-db/.perltidyallrc +11 -0
  68. data/ext/geoip2/libmaxminddb/t/maxmind-db/.tidyallrc +7 -0
  69. data/ext/geoip2/libmaxminddb/t/maxmind-db/LICENSE +4 -0
  70. data/ext/geoip2/libmaxminddb/t/maxmind-db/MaxMind-DB-spec.md +558 -0
  71. data/ext/geoip2/libmaxminddb/t/maxmind-db/README.md +4 -0
  72. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/README.md +7 -0
  73. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
  74. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
  75. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +1 -0
  76. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
  77. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
  78. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/invalid-string-length.mmdb +1 -0
  79. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +1 -0
  80. data/ext/geoip2/libmaxminddb/t/maxmind-db/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
  81. data/ext/geoip2/libmaxminddb/t/maxmind-db/perltidyrc +12 -0
  82. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Anonymous-IP-Test.json +32 -0
  83. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-City-Test.json +12616 -0
  84. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Connection-Type-Test.json +102 -0
  85. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Country-Test.json +10975 -0
  86. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-DensityIncome-Test.json +14 -0
  87. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Domain-Test.json +452 -0
  88. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Enterprise-Test.json +666 -0
  89. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-ISP-Test.json +12585 -0
  90. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoIP2-Precision-Enterprise-Test.json +1035 -0
  91. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/GeoLite2-ASN-Test.json +37 -0
  92. data/ext/geoip2/libmaxminddb/t/maxmind-db/source-data/README +13 -0
  93. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
  94. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
  95. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
  96. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-City-Test.mmdb +0 -0
  97. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
  98. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Country-Test.mmdb +0 -0
  99. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
  100. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Domain-Test.mmdb +0 -0
  101. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
  102. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-ISP-Test.mmdb +0 -0
  103. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
  104. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/GeoLite2-ASN-Test.mmdb +0 -0
  105. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
  106. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
  107. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
  108. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
  109. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
  110. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
  111. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
  112. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
  113. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
  114. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
  115. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
  116. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  117. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
  118. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
  119. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
  120. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/MaxMind-DB-test-nested.mmdb +0 -0
  121. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/README.md +26 -0
  122. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/maps-with-pointers.raw +0 -0
  123. data/ext/geoip2/libmaxminddb/t/maxmind-db/test-data/write-test-data.pl +614 -0
  124. data/ext/geoip2/libmaxminddb/t/maxmind-db/tidyall.ini +5 -0
  125. data/geoip2_c.gemspec +2 -3
  126. data/lib/geoip2/database.rb +4 -0
  127. data/lib/geoip2/version.rb +1 -1
  128. metadata +114 -22
  129. data/.travis.yml +0 -31
  130. data/Appraisals +0 -7
  131. data/gemfiles/ruby_2.1.gemfile +0 -7
  132. data/gemfiles/ruby_2.2.gemfile +0 -7
@@ -0,0 +1,1035 @@
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
+ "iso_code" : "GB",
29
+ "names" : {
30
+ "de" : "Vereinigtes Königreich",
31
+ "en" : "United Kingdom",
32
+ "es" : "Reino Unido",
33
+ "fr" : "Royaume-Uni",
34
+ "ja" : "イギリス",
35
+ "pt-BR" : "Reino Unido",
36
+ "ru" : "Великобритания",
37
+ "zh-CN" : "英国"
38
+ }
39
+ },
40
+ "location" : {
41
+ "accuracy_radius" : 100,
42
+ "latitude" : "51.7500",
43
+ "longitude" : "-1.2500",
44
+ "time_zone" : "Europe/London"
45
+ },
46
+ "postal" : {
47
+ "code" : "OX1",
48
+ "confidence" : 20
49
+ },
50
+ "registered_country" : {
51
+ "geoname_id" : 3017382,
52
+ "iso_code" : "FR",
53
+ "names" : {
54
+ "de" : "Frankreich",
55
+ "en" : "France",
56
+ "es" : "Francia",
57
+ "fr" : "France",
58
+ "ja" : "フランス共和国",
59
+ "pt-BR" : "França",
60
+ "ru" : "Франция",
61
+ "zh-CN" : "法国"
62
+ }
63
+ },
64
+ "subdivisions" : [
65
+ {
66
+ "confidence" : 70,
67
+ "geoname_id" : 6269131,
68
+ "iso_code" : "ENG",
69
+ "names" : {
70
+ "en" : "England",
71
+ "es" : "Inglaterra",
72
+ "fr" : "Angleterre",
73
+ "pt-BR" : "Inglaterra"
74
+ }
75
+ },
76
+ {
77
+ "geoname_id" : 3333217,
78
+ "iso_code" : "WBK",
79
+ "names" : {
80
+ "en" : "West Berkshire",
81
+ "ru" : "Западный Беркшир",
82
+ "zh-CN" : "西伯克郡"
83
+ }
84
+ }
85
+ ]
86
+ }
87
+ },
88
+ {
89
+ "::5.83.124.0/118" : {
90
+ "registered_country" : {
91
+ "geoname_id" : 798549,
92
+ "iso_code" : "RO",
93
+ "names" : {
94
+ "de" : "Rumänien",
95
+ "en" : "Romania",
96
+ "es" : "Rumanía",
97
+ "fr" : "Roumanie",
98
+ "ja" : "ルーマニア",
99
+ "pt-BR" : "Romênia",
100
+ "ru" : "Румыния",
101
+ "zh-CN" : "罗马尼亚"
102
+ }
103
+ },
104
+ "traits" : {
105
+ "is_anonymous_proxy" : true,
106
+ "isp" : "WifiNetCom"
107
+ }
108
+ }
109
+ },
110
+ {
111
+ "::12.87.118.0/119" : {
112
+ "traits" : {
113
+ "autonomous_system_number" : 7018,
114
+ "isp" : "AT&T Services",
115
+ "organization" : "AT&T Worldnet Services"
116
+ }
117
+ }
118
+ },
119
+ {
120
+ "::67.43.156.0/120" : {
121
+ "continent" : {
122
+ "code" : "AS",
123
+ "geoname_id" : 6255147,
124
+ "names" : {
125
+ "de" : "Asien",
126
+ "en" : "Asia",
127
+ "es" : "Asia",
128
+ "fr" : "Asie",
129
+ "ja" : "アジア",
130
+ "pt-BR" : "Ásia",
131
+ "ru" : "Азия",
132
+ "zh-CN" : "亚洲"
133
+ }
134
+ },
135
+ "country" : {
136
+ "confidence" : 99,
137
+ "geoname_id" : 1252634,
138
+ "iso_code" : "BT",
139
+ "names" : {
140
+ "de" : "Bhutan",
141
+ "en" : "Bhutan",
142
+ "es" : "Bután",
143
+ "fr" : "Bhutan",
144
+ "ja" : "ブータン王国",
145
+ "pt-BR" : "Butão",
146
+ "ru" : "Бутан",
147
+ "zh-CN" : "不丹"
148
+ }
149
+ },
150
+ "location" : {
151
+ "accuracy_radius" : 534,
152
+ "latitude" : "27.5000",
153
+ "longitude" : "90.5000",
154
+ "time_zone" : "Asia/Thimphu"
155
+ },
156
+ "registered_country" : {
157
+ "geoname_id" : 798549,
158
+ "iso_code" : "RO",
159
+ "names" : {
160
+ "de" : "Rumänien",
161
+ "en" : "Romania",
162
+ "es" : "Rumanía",
163
+ "fr" : "Roumanie",
164
+ "ja" : "ルーマニア",
165
+ "pt-BR" : "Romênia",
166
+ "ru" : "Румыния",
167
+ "zh-CN" : "罗马尼亚"
168
+ }
169
+ },
170
+ "traits" : {
171
+ "autonomous_system_number" : 35908,
172
+ "domain" : "shoesfin.NET",
173
+ "is_anonymous_proxy" : true,
174
+ "isp" : "Loud Packet",
175
+ "organization" : "zudoarichikito_",
176
+ "user_type" : "search_engine_spider"
177
+ }
178
+ }
179
+ },
180
+ {
181
+ "::74.209.24.0/116" : {
182
+ "city" : {
183
+ "confidence" : "11",
184
+ "geoname_id" : "5112335",
185
+ "names" : {
186
+ "en" : "Chatham"
187
+ }
188
+ },
189
+ "continent" : {
190
+ "code" : "NA",
191
+ "geoname_id" : "6255149",
192
+ "names" : {
193
+ "de" : "Nordamerika",
194
+ "en" : "North America",
195
+ "es" : "Norteamérica",
196
+ "fr" : "Amérique du Nord",
197
+ "ja" : "北アメリカ",
198
+ "pt-BR" : "América do Norte",
199
+ "ru" : "Северная Америка",
200
+ "zh-CN" : "北美洲"
201
+ }
202
+ },
203
+ "country" : {
204
+ "confidence" : "99",
205
+ "geoname_id" : "6252001",
206
+ "iso_code" : "US",
207
+ "names" : {
208
+ "de" : "USA",
209
+ "en" : "United States",
210
+ "es" : "Estados Unidos",
211
+ "fr" : "États-Unis",
212
+ "ja" : "アメリカ合衆国",
213
+ "pt-BR" : "Estados Unidos",
214
+ "ru" : "США",
215
+ "zh-CN" : "美国"
216
+ }
217
+ },
218
+ "location" : {
219
+ "accuracy_radius" : "27",
220
+ "latitude" : "42.347800",
221
+ "longitude" : "-73.554900",
222
+ "metro_code" : "532",
223
+ "time_zone" : "America/New_York"
224
+ },
225
+ "postal" : {
226
+ "code" : "12037",
227
+ "confidence" : "11"
228
+ },
229
+ "registered_country" : {
230
+ "geoname_id" : "6252001",
231
+ "iso_code" : "US",
232
+ "names" : {
233
+ "de" : "USA",
234
+ "en" : "United States",
235
+ "es" : "Estados Unidos",
236
+ "fr" : "États-Unis",
237
+ "ja" : "アメリカ合衆国",
238
+ "pt-BR" : "Estados Unidos",
239
+ "ru" : "США",
240
+ "zh-CN" : "美国"
241
+ }
242
+ },
243
+ "subdivisions" : [
244
+ {
245
+ "confidence" : "93",
246
+ "geoname_id" : "5128638",
247
+ "iso_code" : "NY",
248
+ "names" : {
249
+ "de" : "New York",
250
+ "en" : "New York",
251
+ "es" : "Nueva York",
252
+ "fr" : "New York",
253
+ "ja" : "ニューヨーク州",
254
+ "pt-BR" : "Nova Iorque",
255
+ "ru" : "Нью-Йорк",
256
+ "zh-CN" : "纽约州"
257
+ }
258
+ }
259
+ ],
260
+ "traits" : {
261
+ "autonomous_system_number" : "14671",
262
+ "autonomous_system_organization" : "FairPoint Communications",
263
+ "connection_type" : "Cable/DSL",
264
+ "domain" : "frpt.net",
265
+ "is_anonymous_proxy" : true,
266
+ "is_legitimate_proxy" : true,
267
+ "is_satellite_provider" : true,
268
+ "isp" : "Fairpoint Communications",
269
+ "organization" : "Fairpoint Communications",
270
+ "user_type" : "residential"
271
+ }
272
+ }
273
+ },
274
+ {
275
+ "::81.2.69.142/127" : {
276
+ "city" : {
277
+ "confidence" : 50,
278
+ "geoname_id" : "2643743",
279
+ "names" : {
280
+ "de" : "London",
281
+ "en" : "London",
282
+ "es" : "Londres",
283
+ "fr" : "Londres",
284
+ "ja" : "ロンドン",
285
+ "pt-BR" : "Londres",
286
+ "ru" : "Лондон"
287
+ }
288
+ },
289
+ "continent" : {
290
+ "code" : "EU",
291
+ "geoname_id" : 6255148,
292
+ "names" : {
293
+ "de" : "Europa",
294
+ "en" : "Europe",
295
+ "es" : "Europa",
296
+ "fr" : "Europe",
297
+ "ja" : "ヨーロッパ",
298
+ "pt-BR" : "Europa",
299
+ "ru" : "Европа",
300
+ "zh-CN" : "欧洲"
301
+ }
302
+ },
303
+ "country" : {
304
+ "confidence" : 95,
305
+ "geoname_id" : 2635167,
306
+ "iso_code" : "GB",
307
+ "names" : {
308
+ "de" : "Vereinigtes Königreich",
309
+ "en" : "United Kingdom",
310
+ "es" : "Reino Unido",
311
+ "fr" : "Royaume-Uni",
312
+ "ja" : "イギリス",
313
+ "pt-BR" : "Reino Unido",
314
+ "ru" : "Великобритания",
315
+ "zh-CN" : "英国"
316
+ }
317
+ },
318
+ "location" : {
319
+ "accuracy_radius" : 10,
320
+ "latitude" : "51.5142",
321
+ "longitude" : "-0.0931",
322
+ "time_zone" : "Europe/London"
323
+ },
324
+ "registered_country" : {
325
+ "geoname_id" : 6252001,
326
+ "iso_code" : "US",
327
+ "names" : {
328
+ "de" : "USA",
329
+ "en" : "United States",
330
+ "es" : "Estados Unidos",
331
+ "fr" : "États-Unis",
332
+ "ja" : "アメリカ合衆国",
333
+ "pt-BR" : "Estados Unidos",
334
+ "ru" : "США",
335
+ "zh-CN" : "美国"
336
+ }
337
+ },
338
+ "subdivisions" : [
339
+ {
340
+ "confidence" : 70,
341
+ "geoname_id" : 6269131,
342
+ "iso_code" : "ENG",
343
+ "names" : {
344
+ "en" : "England",
345
+ "es" : "Inglaterra",
346
+ "fr" : "Angleterre",
347
+ "pt-BR" : "Inglaterra"
348
+ }
349
+ }
350
+ ],
351
+ "traits" : {
352
+ "domain" : "in-addr.arpa"
353
+ }
354
+ }
355
+ },
356
+ {
357
+ "::81.2.69.160/123" : {
358
+ "city" : {
359
+ "confidence" : 42,
360
+ "geoname_id" : "2643743",
361
+ "names" : {
362
+ "de" : "London",
363
+ "en" : "London",
364
+ "es" : "Londres",
365
+ "fr" : "Londres",
366
+ "ja" : "ロンドン",
367
+ "pt-BR" : "Londres",
368
+ "ru" : "Лондон"
369
+ }
370
+ },
371
+ "continent" : {
372
+ "code" : "EU",
373
+ "geoname_id" : 6255148,
374
+ "names" : {
375
+ "de" : "Europa",
376
+ "en" : "Europe",
377
+ "es" : "Europa",
378
+ "fr" : "Europe",
379
+ "ja" : "ヨーロッパ",
380
+ "pt-BR" : "Europa",
381
+ "ru" : "Европа",
382
+ "zh-CN" : "欧洲"
383
+ }
384
+ },
385
+ "country" : {
386
+ "confidence" : 99,
387
+ "geoname_id" : 2635167,
388
+ "iso_code" : "GB",
389
+ "names" : {
390
+ "de" : "Vereinigtes Königreich",
391
+ "en" : "United Kingdom",
392
+ "es" : "Reino Unido",
393
+ "fr" : "Royaume-Uni",
394
+ "ja" : "イギリス",
395
+ "pt-BR" : "Reino Unido",
396
+ "ru" : "Великобритания",
397
+ "zh-CN" : "英国"
398
+ }
399
+ },
400
+ "location" : {
401
+ "accuracy_radius" : 100,
402
+ "latitude" : "51.5142",
403
+ "longitude" : "-0.0931",
404
+ "time_zone" : "Europe/London"
405
+ },
406
+ "registered_country" : {
407
+ "geoname_id" : 6252001,
408
+ "iso_code" : "US",
409
+ "names" : {
410
+ "de" : "USA",
411
+ "en" : "United States",
412
+ "es" : "Estados Unidos",
413
+ "fr" : "États-Unis",
414
+ "ja" : "アメリカ合衆国",
415
+ "pt-BR" : "Estados Unidos",
416
+ "ru" : "США",
417
+ "zh-CN" : "美国"
418
+ }
419
+ },
420
+ "subdivisions" : [
421
+ {
422
+ "confidence" : 42,
423
+ "geoname_id" : 6269131,
424
+ "iso_code" : "ENG",
425
+ "names" : {
426
+ "en" : "England",
427
+ "es" : "Inglaterra",
428
+ "fr" : "Angleterre",
429
+ "pt-BR" : "Inglaterra"
430
+ }
431
+ }
432
+ ],
433
+ "traits" : {
434
+ "connection_type" : "Corporate",
435
+ "domain" : "in-addr.arpa",
436
+ "isp" : "Andrews & Arnold Ltd",
437
+ "organization" : "STONEHOUSE office network",
438
+ "user_type" : "government"
439
+ }
440
+ }
441
+ },
442
+ {
443
+ "::89.160.20.112/124" : {
444
+ "city" : {
445
+ "confidence" : 51,
446
+ "geoname_id" : "2694762",
447
+ "names" : {
448
+ "de" : "Linköping",
449
+ "en" : "Linköping",
450
+ "fr" : "Linköping",
451
+ "ja" : "リンシェーピング",
452
+ "zh-CN" : "林雪平"
453
+ }
454
+ },
455
+ "continent" : {
456
+ "code" : "EU",
457
+ "geoname_id" : 6255148,
458
+ "names" : {
459
+ "de" : "Europa",
460
+ "en" : "Europe",
461
+ "es" : "Europa",
462
+ "fr" : "Europe",
463
+ "ja" : "ヨーロッパ",
464
+ "pt-BR" : "Europa",
465
+ "ru" : "Европа",
466
+ "zh-CN" : "欧洲"
467
+ }
468
+ },
469
+ "country" : {
470
+ "confidence" : 99,
471
+ "geoname_id" : 2661886,
472
+ "iso_code" : "SE",
473
+ "names" : {
474
+ "de" : "Schweden",
475
+ "en" : "Sweden",
476
+ "es" : "Suecia",
477
+ "fr" : "Suède",
478
+ "ja" : "スウェーデン王国",
479
+ "pt-BR" : "Suécia",
480
+ "ru" : "Швеция",
481
+ "zh-CN" : "瑞典"
482
+ }
483
+ },
484
+ "location" : {
485
+ "accuracy_radius" : 76,
486
+ "latitude" : "58.4167",
487
+ "longitude" : "15.6167",
488
+ "time_zone" : "Europe/Stockholm"
489
+ },
490
+ "registered_country" : {
491
+ "geoname_id" : 2921044,
492
+ "iso_code" : "DE",
493
+ "names" : {
494
+ "de" : "Deutschland",
495
+ "en" : "Germany",
496
+ "es" : "Alemania",
497
+ "fr" : "Allemagne",
498
+ "ja" : "ドイツ連邦共和国",
499
+ "pt-BR" : "Alemanha",
500
+ "ru" : "Германия",
501
+ "zh-CN" : "德国"
502
+ }
503
+ },
504
+ "subdivisions" : [
505
+ {
506
+ "confidence" : 51,
507
+ "geoname_id" : 2685867,
508
+ "iso_code" : "E",
509
+ "names" : {
510
+ "en" : "Östergötland County",
511
+ "fr" : "Comté d'Östergötland"
512
+ }
513
+ }
514
+ ],
515
+ "traits" : {
516
+ "autonomous_system_number" : 29518,
517
+ "autonomous_system_organization" : "Bredband2 AB",
518
+ "connection_type" : "Corporate",
519
+ "domain" : "bredband2.com",
520
+ "isp" : "Bredband2 AB",
521
+ "organization" : "Bevtec",
522
+ "user_type" : "government"
523
+ }
524
+ }
525
+ },
526
+ {
527
+ "::128.101.101.101/128" : {
528
+ "city" : {
529
+ "confidence" : 50,
530
+ "geoname_id" : 5037649,
531
+ "names" : {
532
+ "de" : "Minneapolis",
533
+ "en" : "Minneapolis",
534
+ "es" : "Mineápolis",
535
+ "fr" : "Minneapolis",
536
+ "ja" : "ミネアポリス",
537
+ "pt-BR" : "Minneapolis",
538
+ "ru" : "Миннеаполис",
539
+ "zh-CN" : "明尼阿波利斯"
540
+ }
541
+ },
542
+ "continent" : {
543
+ "code" : "NA",
544
+ "geoname_id" : 6255149,
545
+ "names" : {
546
+ "de" : "Nordamerika",
547
+ "en" : "North America",
548
+ "es" : "Norteamérica",
549
+ "fr" : "Amérique du Nord",
550
+ "ja" : "北アメリカ",
551
+ "pt-BR" : "América do Norte",
552
+ "ru" : "Северная Америка",
553
+ "zh-CN" : "北美洲"
554
+ }
555
+ },
556
+ "country" : {
557
+ "confidence" : 95,
558
+ "geoname_id" : 6252001,
559
+ "iso_code" : "US",
560
+ "names" : {
561
+ "de" : "USA",
562
+ "en" : "United States",
563
+ "es" : "Estados Unidos",
564
+ "fr" : "États-Unis",
565
+ "ja" : "アメリカ合衆国",
566
+ "pt-BR" : "Estados Unidos",
567
+ "ru" : "Сша",
568
+ "zh-CN" : "美国"
569
+ }
570
+ },
571
+ "location" : {
572
+ "accuracy_radius" : 3,
573
+ "latitude" : 44.9759,
574
+ "longitude" : -93.2166,
575
+ "metro_code" : 613,
576
+ "time_zone" : "America/Chicago"
577
+ },
578
+ "postal" : {
579
+ "code" : "55414",
580
+ "confidence" : 20
581
+ },
582
+ "registered_country" : {
583
+ "geoname_id" : 6252001,
584
+ "iso_code" : "US",
585
+ "names" : {
586
+ "de" : "USA",
587
+ "en" : "United States",
588
+ "es" : "Estados Unidos",
589
+ "fr" : "États-Unis",
590
+ "ja" : "アメリカ合衆国",
591
+ "pt-BR" : "Estados Unidos",
592
+ "ru" : "Сша",
593
+ "zh-CN" : "美国"
594
+ }
595
+ },
596
+ "subdivisions" : [
597
+ {
598
+ "confidence" : 70,
599
+ "geoname_id" : 5037779,
600
+ "iso_code" : "MN",
601
+ "names" : {
602
+ "en" : "Minnesota",
603
+ "es" : "Minnesota",
604
+ "ja" : "ミネソタ州",
605
+ "ru" : "Миннесота"
606
+ }
607
+ }
608
+ ],
609
+ "traits" : {
610
+ "autonomous_system_number" : 2313,
611
+ "autonomous_system_organization" : "Precision AS Org",
612
+ "isp" : "Precision ISP",
613
+ "organization" : "Precision Org"
614
+ }
615
+ }
616
+ },
617
+ {
618
+ "::175.16.199.0/120" : {
619
+ "city" : {
620
+ "confidence" : 50,
621
+ "geoname_id" : 2038180,
622
+ "names" : {
623
+ "de" : "Chángchūn",
624
+ "en" : "Changchun",
625
+ "fr" : "Changchun",
626
+ "ja" : "長春市",
627
+ "ru" : "Чанчунь",
628
+ "zh-CN" : "长春"
629
+ }
630
+ },
631
+ "continent" : {
632
+ "code" : "AS",
633
+ "geoname_id" : 6255147,
634
+ "names" : {
635
+ "de" : "Asien",
636
+ "en" : "Asia",
637
+ "es" : "Asia",
638
+ "fr" : "Asie",
639
+ "ja" : "アジア",
640
+ "pt-BR" : "Ásia",
641
+ "ru" : "Азия",
642
+ "zh-CN" : "亚洲"
643
+ }
644
+ },
645
+ "country" : {
646
+ "confidence" : 95,
647
+ "geoname_id" : 1814991,
648
+ "iso_code" : "CN",
649
+ "names" : {
650
+ "de" : "China",
651
+ "en" : "China",
652
+ "es" : "China",
653
+ "fr" : "Chine",
654
+ "ja" : "中国",
655
+ "pt-BR" : "China",
656
+ "ru" : "Китай",
657
+ "zh-CN" : "中国"
658
+ }
659
+ },
660
+ "location" : {
661
+ "accuracy_radius" : 100,
662
+ "latitude" : 43.88,
663
+ "longitude" : 125.3228,
664
+ "time_zone" : "Asia/Harbin"
665
+ },
666
+ "registered_country" : {
667
+ "geoname_id" : 1814991,
668
+ "iso_code" : "CN",
669
+ "names" : {
670
+ "de" : "China",
671
+ "en" : "China",
672
+ "es" : "China",
673
+ "fr" : "Chine",
674
+ "ja" : "中国",
675
+ "pt-BR" : "China",
676
+ "ru" : "Китай",
677
+ "zh-CN" : "中国"
678
+ }
679
+ },
680
+ "subdivisions" : [
681
+ {
682
+ "confidence" : 70,
683
+ "geoname_id" : 2036500,
684
+ "iso_code" : "22",
685
+ "names" : {
686
+ "en" : "Jilin Sheng",
687
+ "zh-CN" : "吉林"
688
+ }
689
+ }
690
+ ],
691
+ "traits" : {
692
+ "user_type" : "dialup"
693
+ }
694
+ }
695
+ },
696
+ {
697
+ "::188.35.144.0/119" : {
698
+ "traits" : {
699
+ "organization" : "CityLink Ltd"
700
+ }
701
+ }
702
+ },
703
+ {
704
+ "::202.196.224.0/116" : {
705
+ "continent" : {
706
+ "code" : "AS",
707
+ "geoname_id" : 6255147,
708
+ "names" : {
709
+ "de" : "Asien",
710
+ "en" : "Asia",
711
+ "es" : "Asia",
712
+ "fr" : "Asie",
713
+ "ja" : "アジア",
714
+ "pt-BR" : "Ásia",
715
+ "ru" : "Азия",
716
+ "zh-CN" : "亚洲"
717
+ }
718
+ },
719
+ "country" : {
720
+ "confidence" : 95,
721
+ "geoname_id" : 1694008,
722
+ "iso_code" : "PH",
723
+ "names" : {
724
+ "de" : "Philippinen",
725
+ "en" : "Philippines",
726
+ "es" : "Filipinas",
727
+ "fr" : "Philippines",
728
+ "ja" : "フィリピン共和国",
729
+ "pt-BR" : "Filipinas",
730
+ "ru" : "Филиппины",
731
+ "zh-CN" : "菲律宾"
732
+ }
733
+ },
734
+ "location" : {
735
+ "accuracy_radius" : 121,
736
+ "latitude" : "13",
737
+ "longitude" : "122",
738
+ "time_zone" : "Asia/Manila"
739
+ },
740
+ "postal" : {
741
+ "code" : "34021",
742
+ "confidence" : 20
743
+ },
744
+ "registered_country" : {
745
+ "geoname_id" : 1694008,
746
+ "iso_code" : "PH",
747
+ "names" : {
748
+ "de" : "Philippinen",
749
+ "en" : "Philippines",
750
+ "es" : "Filipinas",
751
+ "fr" : "Philippines",
752
+ "ja" : "フィリピン共和国",
753
+ "pt-BR" : "Filipinas",
754
+ "ru" : "Филиппины",
755
+ "zh-CN" : "菲律宾"
756
+ }
757
+ },
758
+ "represented_country" : {
759
+ "geoname_id" : 6252001,
760
+ "iso_code" : "US",
761
+ "names" : {
762
+ "de" : "USA",
763
+ "en" : "United States",
764
+ "es" : "Estados Unidos",
765
+ "fr" : "États-Unis",
766
+ "ja" : "アメリカ合衆国",
767
+ "pt-BR" : "Estados Unidos",
768
+ "ru" : "США",
769
+ "zh-CN" : "美国"
770
+ },
771
+ "type" : "military"
772
+ }
773
+ }
774
+ },
775
+ {
776
+ "::216.160.83.56/125" : {
777
+ "city" : {
778
+ "confidence" : 40,
779
+ "geoname_id" : "5803556",
780
+ "names" : {
781
+ "en" : "Milton",
782
+ "ru" : "Мильтон"
783
+ }
784
+ },
785
+ "continent" : {
786
+ "code" : "NA",
787
+ "geoname_id" : 6255149,
788
+ "names" : {
789
+ "de" : "Nordamerika",
790
+ "en" : "North America",
791
+ "es" : "América del Norte",
792
+ "fr" : "Amérique du Nord",
793
+ "ja" : "北アメリカ",
794
+ "pt-BR" : "América do Norte",
795
+ "ru" : "Северная Америка",
796
+ "zh-CN" : "北美洲"
797
+ }
798
+ },
799
+ "country" : {
800
+ "confidence" : 99,
801
+ "geoname_id" : 6252001,
802
+ "iso_code" : "US",
803
+ "names" : {
804
+ "de" : "USA",
805
+ "en" : "United States",
806
+ "es" : "Estados Unidos",
807
+ "fr" : "États-Unis",
808
+ "ja" : "アメリカ合衆国",
809
+ "pt-BR" : "Estados Unidos",
810
+ "ru" : "США",
811
+ "zh-CN" : "美国"
812
+ }
813
+ },
814
+ "location" : {
815
+ "accuracy_radius" : 22,
816
+ "latitude" : "47.2513",
817
+ "longitude" : "-122.3149",
818
+ "metro_code" : "819",
819
+ "time_zone" : "America/Los_Angeles"
820
+ },
821
+ "postal" : {
822
+ "code" : "98354",
823
+ "confidence" : 40
824
+ },
825
+ "registered_country" : {
826
+ "geoname_id" : 2635167,
827
+ "iso_code" : "GB",
828
+ "names" : {
829
+ "de" : "Vereinigtes Königreich",
830
+ "en" : "United Kingdom",
831
+ "es" : "Reino Unido",
832
+ "fr" : "Royaume-Uni",
833
+ "ja" : "イギリス",
834
+ "pt-BR" : "Reino Unido",
835
+ "ru" : "Великобритания",
836
+ "zh-CN" : "英国"
837
+ }
838
+ },
839
+ "subdivisions" : [
840
+ {
841
+ "confidence" : 99,
842
+ "geoname_id" : 5815135,
843
+ "iso_code" : "WA",
844
+ "names" : {
845
+ "en" : "Washington",
846
+ "es" : "Washington",
847
+ "fr" : "État de Washington",
848
+ "ja" : "ワシントン州",
849
+ "ru" : "Вашингтон",
850
+ "zh-CN" : "华盛顿州"
851
+ }
852
+ }
853
+ ],
854
+ "traits" : {
855
+ "autonomous_system_number" : 209,
856
+ "connection_type" : "Cable/DSL",
857
+ "isp" : "Century Link",
858
+ "organization" : "Lariat Software",
859
+ "user_type" : "government"
860
+ }
861
+ }
862
+ },
863
+ {
864
+ "2001:218::/32" : {
865
+ "continent" : {
866
+ "code" : "AS",
867
+ "geoname_id" : 6255147,
868
+ "names" : {
869
+ "de" : "Asien",
870
+ "en" : "Asia",
871
+ "es" : "Asia",
872
+ "fr" : "Asie",
873
+ "ja" : "アジア",
874
+ "pt-BR" : "Ásia",
875
+ "ru" : "Азия",
876
+ "zh-CN" : "亚洲"
877
+ }
878
+ },
879
+ "country" : {
880
+ "confidence" : 95,
881
+ "geoname_id" : 1861060,
882
+ "iso_code" : "JP",
883
+ "names" : {
884
+ "de" : "Japan",
885
+ "en" : "Japan",
886
+ "es" : "Japón",
887
+ "fr" : "Japon",
888
+ "ja" : "日本",
889
+ "pt-BR" : "Japão",
890
+ "ru" : "Япония",
891
+ "zh-CN" : "日本"
892
+ }
893
+ },
894
+ "location" : {
895
+ "accuracy_radius" : 100,
896
+ "latitude" : "35.68536",
897
+ "longitude" : "139.75309",
898
+ "time_zone" : "Asia/Tokyo"
899
+ },
900
+ "registered_country" : {
901
+ "geoname_id" : 1861060,
902
+ "iso_code" : "JP",
903
+ "names" : {
904
+ "de" : "Japan",
905
+ "en" : "Japan",
906
+ "es" : "Japón",
907
+ "fr" : "Japon",
908
+ "ja" : "日本",
909
+ "pt-BR" : "Japão",
910
+ "ru" : "Япония",
911
+ "zh-CN" : "日本"
912
+ }
913
+ }
914
+ }
915
+ },
916
+ {
917
+ "2001:250::/31" : {
918
+ "continent" : {
919
+ "code" : "AS",
920
+ "geoname_id" : 6255147,
921
+ "names" : {
922
+ "de" : "Asien",
923
+ "en" : "Asia",
924
+ "es" : "Asia",
925
+ "fr" : "Asie",
926
+ "ja" : "アジア",
927
+ "pt-BR" : "Ásia",
928
+ "ru" : "Азия",
929
+ "zh-CN" : "亚洲"
930
+ }
931
+ },
932
+ "country" : {
933
+ "confidence" : 95,
934
+ "geoname_id" : 1814991,
935
+ "iso_code" : "CN",
936
+ "names" : {
937
+ "de" : "China",
938
+ "en" : "People's Republic of China",
939
+ "es" : "República Popular China",
940
+ "fr" : "Chine",
941
+ "ja" : "中国",
942
+ "pt-BR" : "China",
943
+ "ru" : "Китай",
944
+ "zh-CN" : "中国"
945
+ }
946
+ },
947
+ "location" : {
948
+ "accuracy_radius" : 100,
949
+ "latitude" : "35",
950
+ "longitude" : "105"
951
+ },
952
+ "registered_country" : {
953
+ "geoname_id" : 1814991,
954
+ "iso_code" : "CN",
955
+ "names" : {
956
+ "de" : "China",
957
+ "en" : "People's Republic of China",
958
+ "es" : "República Popular China",
959
+ "fr" : "Chine",
960
+ "ja" : "中国",
961
+ "pt-BR" : "China",
962
+ "ru" : "Китай",
963
+ "zh-CN" : "中国"
964
+ }
965
+ }
966
+ }
967
+ },
968
+ {
969
+ "2a02:d280::/29" : {
970
+ "continent" : {
971
+ "code" : "EU",
972
+ "geoname_id" : 6255148,
973
+ "names" : {
974
+ "de" : "Europa",
975
+ "en" : "Europe",
976
+ "es" : "Europa",
977
+ "fr" : "Europe",
978
+ "ja" : "ヨーロッパ",
979
+ "pt-BR" : "Europa",
980
+ "ru" : "Европа",
981
+ "zh-CN" : "欧洲"
982
+ }
983
+ },
984
+ "country" : {
985
+ "confidence" : 95,
986
+ "geoname_id" : 3077311,
987
+ "iso_code" : "CZ",
988
+ "names" : {
989
+ "de" : "Tschechische Republik",
990
+ "en" : "Czech Republic",
991
+ "es" : "República Checa",
992
+ "fr" : "Tchéquie",
993
+ "ja" : "チェコ共和国",
994
+ "pt-BR" : "República Checa",
995
+ "ru" : "Чешская Республика",
996
+ "zh-CN" : "捷克共和国"
997
+ }
998
+ },
999
+ "location" : {
1000
+ "accuracy_radius" : 100,
1001
+ "latitude" : "49.75",
1002
+ "longitude" : "15",
1003
+ "time_zone" : "Europe/Prague"
1004
+ },
1005
+ "registered_country" : {
1006
+ "geoname_id" : 3077311,
1007
+ "iso_code" : "CZ",
1008
+ "names" : {
1009
+ "de" : "Tschechische Republik",
1010
+ "en" : "Czech Republic",
1011
+ "es" : "República Checa",
1012
+ "fr" : "Tchéquie",
1013
+ "ja" : "チェコ共和国",
1014
+ "pt-BR" : "República Checa",
1015
+ "ru" : "Чешская Республика",
1016
+ "zh-CN" : "捷克共和国"
1017
+ }
1018
+ }
1019
+ }
1020
+ },
1021
+ {
1022
+ "::212.47.235.81/128" : {
1023
+ "traits" : {
1024
+ "is_anonymous_proxy" : true
1025
+ }
1026
+ }
1027
+ },
1028
+ {
1029
+ "::212.47.235.82/128" : {
1030
+ "traits" : {
1031
+ "is_satellite_provider" : true
1032
+ }
1033
+ }
1034
+ }
1035
+ ]