maxmind-geoip2 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/README.md +13 -10
- data/lib/maxmind/geoip2/client.rb +18 -9
- data/lib/maxmind/geoip2/errors.rb +17 -8
- data/lib/maxmind/geoip2/model/city.rb +4 -5
- data/lib/maxmind/geoip2/model/connection_type.rb +3 -2
- data/lib/maxmind/geoip2/model/enterprise.rb +2 -3
- data/lib/maxmind/geoip2/model/insights.rb +3 -5
- data/lib/maxmind/geoip2/model/isp.rb +16 -0
- data/lib/maxmind/geoip2/reader.rb +1 -2
- data/lib/maxmind/geoip2/record/traits.rb +58 -26
- data/lib/maxmind/geoip2/version.rb +8 -0
- data/maxmind-geoip2.gemspec +8 -2
- data/test/data/MaxMind-DB-spec.md +15 -11
- data/test/data/cmd/write-test-data/main.go +68 -0
- data/test/data/go.mod +13 -0
- data/test/data/go.sum +16 -0
- data/test/data/perltidyrc +6 -0
- data/test/data/pkg/writer/decoder.go +178 -0
- data/test/data/pkg/writer/geoip2.go +182 -0
- data/test/data/pkg/writer/ip.go +39 -0
- data/test/data/pkg/writer/maxmind.go +245 -0
- data/test/data/pkg/writer/nestedstructures.go +73 -0
- data/test/data/pkg/writer/writer.go +58 -0
- data/test/data/source-data/GeoIP2-City-Test.json +402 -48
- data/test/data/source-data/GeoIP2-Connection-Type-Test.json +35 -10
- data/test/data/source-data/GeoIP2-Country-Test.json +145 -58
- data/test/data/source-data/GeoIP2-Domain-Test.json +5 -0
- data/test/data/source-data/GeoIP2-Enterprise-Test.json +408 -4
- data/test/data/source-data/GeoIP2-ISP-Test.json +10 -0
- data/test/data/source-data/GeoIP2-Precision-Enterprise-Sandbox-Test.json +296 -0
- data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +473 -6
- data/test/data/source-data/GeoIP2-Static-IP-Score-Test.json +15 -0
- data/test/data/source-data/GeoIP2-User-Count-Test.json +18 -0
- data/test/data/source-data/GeoLite2-ASN-Test.json +4091 -8
- data/test/data/source-data/GeoLite2-City-Test.json +12972 -0
- data/test/data/source-data/GeoLite2-Country-Test.json +11372 -0
- data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-City-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-Country-Test.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-pointer-decoder.mmdb +0 -0
- data/test/data/test-data/README.md +30 -14
- data/test/test_client.rb +18 -2
- data/test/test_reader.rb +37 -3
- metadata +21 -8
- data/test/data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
- data/test/data/source-data/README +0 -15
- data/test/data/test-data/write-test-data.pl +0 -691
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,26 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
## How to generate test data
|
|
2
|
+
Use the [write-test-data](https://github.com/maxmind/MaxMind-DB/blob/main/cmd/write-test-data)
|
|
3
|
+
go tool to create a small set of test databases with a variety of data and
|
|
4
|
+
record sizes.
|
|
3
5
|
|
|
4
6
|
These test databases are useful for testing code that reads MaxMind DB files.
|
|
5
7
|
|
|
6
|
-
There is also a `maps-with-pointers.raw` file. This contains the raw output of
|
|
7
|
-
the MaxMind::DB::Writer::Serializer module, when given a series of maps which
|
|
8
|
-
share some keys and values. It is used to test that decoder code can handle
|
|
9
|
-
pointers to map keys and values, as well as to the whole map.
|
|
10
|
-
|
|
11
8
|
There are several ways to figure out what IP addresses are actually in the
|
|
12
9
|
test databases. You can take a look at the
|
|
13
|
-
[source-data directory](https://github.com/maxmind/MaxMind-DB/tree/
|
|
10
|
+
[source-data directory](https://github.com/maxmind/MaxMind-DB/tree/main/source-data)
|
|
14
11
|
in this repository. This directory contains JSON files which are used to
|
|
15
12
|
generate many (but not all) of the database files.
|
|
16
13
|
|
|
17
14
|
You can also use the
|
|
18
|
-
[mmdb-dump-database script](https://github.com/maxmind/MaxMind-DB-Reader-perl/blob/
|
|
15
|
+
[mmdb-dump-database script](https://github.com/maxmind/MaxMind-DB-Reader-perl/blob/main/eg/mmdb-dump-database)
|
|
19
16
|
in the
|
|
20
17
|
[MaxMind-DB-Reader-perl repository](https://github.com/maxmind/MaxMind-DB-Reader-perl).
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
the
|
|
24
|
-
[
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
## Static test data
|
|
20
|
+
Some of the test files are remnants of the
|
|
21
|
+
[old perl test data writer](https://github.com/maxmind/MaxMind-DB/blob/f0a85c671c5b6e9c5e514bd66162724ee1dedea3/test-data/write-test-data.pl)
|
|
22
|
+
and cannot be generated with the go tool. These databases are intentionally broken,
|
|
23
|
+
and exploited functionality simply not available in the go mmdbwriter:
|
|
24
|
+
|
|
25
|
+
- MaxMind-DB-test-broken-pointers-24.mmdb
|
|
26
|
+
- MaxMind-DB-test-broken-search-tree-24.mmdb
|
|
27
|
+
- MaxMind-DB-test-pointer-decoder.mmdb
|
|
28
|
+
- GeoIP2-City-Test-Broken-Double-Format.mmdb
|
|
29
|
+
- GeoIP2-City-Test-Invalid-Node-Count.mmdb
|
|
30
|
+
- maps-with-pointers.raw
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
```
|
|
34
|
+
Usage of ./write-test-data:
|
|
35
|
+
-source string
|
|
36
|
+
Source data directory
|
|
37
|
+
-target string
|
|
38
|
+
Destination directory for the generated mmdb files
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Example:
|
|
42
|
+
`./write-test-data --source ../../source-data --target ../../test-data`
|
data/test/test_client.rb
CHANGED
|
@@ -22,6 +22,7 @@ class ClientTest < Minitest::Test
|
|
|
22
22
|
},
|
|
23
23
|
'traits' => {
|
|
24
24
|
'ip_address' => '1.2.3.4',
|
|
25
|
+
'is_anycast' => true,
|
|
25
26
|
'network' => '1.2.3.0/24',
|
|
26
27
|
},
|
|
27
28
|
}.freeze
|
|
@@ -42,6 +43,7 @@ class ClientTest < Minitest::Test
|
|
|
42
43
|
},
|
|
43
44
|
'traits' => {
|
|
44
45
|
'ip_address' => '1.2.3.40',
|
|
46
|
+
'is_anycast' => true,
|
|
45
47
|
'is_residential_proxy' => true,
|
|
46
48
|
'network' => '1.2.3.0/24',
|
|
47
49
|
'static_ip_score' => 1.3,
|
|
@@ -73,6 +75,7 @@ class ClientTest < Minitest::Test
|
|
|
73
75
|
|
|
74
76
|
assert_equal(false, record.registered_country.in_european_union?)
|
|
75
77
|
|
|
78
|
+
assert_equal(true, record.traits.anycast?)
|
|
76
79
|
assert_equal('1.2.3.0/24', record.traits.network)
|
|
77
80
|
end
|
|
78
81
|
|
|
@@ -83,6 +86,7 @@ class ClientTest < Minitest::Test
|
|
|
83
86
|
|
|
84
87
|
assert_equal(42, record.continent.geoname_id)
|
|
85
88
|
|
|
89
|
+
assert_equal(true, record.traits.anycast?)
|
|
86
90
|
assert_equal(true, record.traits.residential_proxy?)
|
|
87
91
|
assert_equal('1.2.3.0/24', record.traits.network)
|
|
88
92
|
assert_equal(1.3, record.traits.static_ip_score)
|
|
@@ -126,7 +130,7 @@ class ClientTest < Minitest::Test
|
|
|
126
130
|
)
|
|
127
131
|
end
|
|
128
132
|
|
|
129
|
-
def
|
|
133
|
+
def test_invalid_ip_error_from_web_service
|
|
130
134
|
error = assert_raises(
|
|
131
135
|
MaxMind::GeoIP2::AddressInvalidError,
|
|
132
136
|
) { request(:country, '1.2.3.6') }
|
|
@@ -137,6 +141,17 @@ class ClientTest < Minitest::Test
|
|
|
137
141
|
)
|
|
138
142
|
end
|
|
139
143
|
|
|
144
|
+
def test_invalid_ip_error_from_client
|
|
145
|
+
error = assert_raises(
|
|
146
|
+
MaxMind::GeoIP2::AddressInvalidError,
|
|
147
|
+
) { request(:country, '1.2.3') }
|
|
148
|
+
|
|
149
|
+
assert_equal(
|
|
150
|
+
'The value "1.2.3" is not a valid IP address',
|
|
151
|
+
error.message,
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
140
155
|
def test_no_error_body_ip_error
|
|
141
156
|
assert_raises(
|
|
142
157
|
JSON::ParserError,
|
|
@@ -290,7 +305,7 @@ class ClientTest < Minitest::Test
|
|
|
290
305
|
license_key: 'abcdef123456',
|
|
291
306
|
)
|
|
292
307
|
|
|
293
|
-
client.send(method,
|
|
308
|
+
client.send(method, ip_address)
|
|
294
309
|
end
|
|
295
310
|
|
|
296
311
|
def get_response(ip_address)
|
|
@@ -300,6 +315,7 @@ class ClientTest < Minitest::Test
|
|
|
300
315
|
headers: { 'Content-Type': CONTENT_TYPES[:country] },
|
|
301
316
|
status: 200,
|
|
302
317
|
},
|
|
318
|
+
'1.2.3' => {},
|
|
303
319
|
'1.2.3.4' => {
|
|
304
320
|
body: JSON.generate(COUNTRY),
|
|
305
321
|
headers: { 'Content-Type': CONTENT_TYPES[:country] },
|
data/test/test_reader.rb
CHANGED
|
@@ -97,6 +97,12 @@ class ReaderTest < Minitest::Test
|
|
|
97
97
|
assert_equal('WA', record.most_specific_subdivision.iso_code)
|
|
98
98
|
)
|
|
99
99
|
|
|
100
|
+
# This IP has is_anycast.
|
|
101
|
+
|
|
102
|
+
ip_address = '214.1.1.0'
|
|
103
|
+
record = reader.city(ip_address)
|
|
104
|
+
assert_equal(true, record.traits.anycast?)
|
|
105
|
+
|
|
100
106
|
reader.close
|
|
101
107
|
end
|
|
102
108
|
|
|
@@ -119,7 +125,7 @@ class ReaderTest < Minitest::Test
|
|
|
119
125
|
ip = '1.0.1.1'
|
|
120
126
|
record = reader.connection_type(ip)
|
|
121
127
|
|
|
122
|
-
assert_equal('
|
|
128
|
+
assert_equal('Cellular', record.connection_type)
|
|
123
129
|
assert_equal(ip, record.ip_address)
|
|
124
130
|
assert_equal('1.0.1.0/24', record.network)
|
|
125
131
|
|
|
@@ -150,7 +156,7 @@ class ReaderTest < Minitest::Test
|
|
|
150
156
|
assert_equal('Europe', record.continent.name)
|
|
151
157
|
|
|
152
158
|
assert_equal(2_635_167, record.country.geoname_id)
|
|
153
|
-
assert_equal(
|
|
159
|
+
assert_equal(false, record.country.in_european_union?)
|
|
154
160
|
assert_equal('GB', record.country.iso_code)
|
|
155
161
|
assert_equal(
|
|
156
162
|
{
|
|
@@ -209,6 +215,12 @@ class ReaderTest < Minitest::Test
|
|
|
209
215
|
assert_equal('81.2.69.163', record.traits.ip_address)
|
|
210
216
|
assert_equal('81.2.69.160/27', record.traits.network)
|
|
211
217
|
|
|
218
|
+
# This IP has is_anycast.
|
|
219
|
+
|
|
220
|
+
ip_address = '214.1.1.0'
|
|
221
|
+
record = reader.country(ip_address)
|
|
222
|
+
assert_equal(true, record.traits.anycast?)
|
|
223
|
+
|
|
212
224
|
assert_raises(NoMethodError) { record.foo }
|
|
213
225
|
reader.close
|
|
214
226
|
end
|
|
@@ -266,6 +278,20 @@ class ReaderTest < Minitest::Test
|
|
|
266
278
|
assert_equal(ip_address, record.traits.ip_address)
|
|
267
279
|
assert_equal('74.209.16.0/20', record.traits.network)
|
|
268
280
|
|
|
281
|
+
# This IP has MCC/MNC data.
|
|
282
|
+
|
|
283
|
+
ip_address = '149.101.100.0'
|
|
284
|
+
record = reader.enterprise(ip_address)
|
|
285
|
+
|
|
286
|
+
assert_equal('310', record.traits.mobile_country_code)
|
|
287
|
+
assert_equal('004', record.traits.mobile_network_code)
|
|
288
|
+
|
|
289
|
+
# This IP has is_anycast.
|
|
290
|
+
|
|
291
|
+
ip_address = '214.1.1.0'
|
|
292
|
+
record = reader.enterprise(ip_address)
|
|
293
|
+
assert_equal(true, record.traits.anycast?)
|
|
294
|
+
|
|
269
295
|
reader.close
|
|
270
296
|
end
|
|
271
297
|
|
|
@@ -283,6 +309,14 @@ class ReaderTest < Minitest::Test
|
|
|
283
309
|
assert_equal(ip, record.ip_address)
|
|
284
310
|
assert_equal('1.128.0.0/11', record.network)
|
|
285
311
|
|
|
312
|
+
# This IP has MCC/MNC data.
|
|
313
|
+
|
|
314
|
+
ip_address = '149.101.100.0'
|
|
315
|
+
record = reader.isp(ip_address)
|
|
316
|
+
|
|
317
|
+
assert_equal('310', record.mobile_country_code)
|
|
318
|
+
assert_equal('004', record.mobile_network_code)
|
|
319
|
+
|
|
286
320
|
reader.close
|
|
287
321
|
end
|
|
288
322
|
|
|
@@ -416,7 +450,7 @@ class ReaderTest < Minitest::Test
|
|
|
416
450
|
"test/data/test-data/GeoIP2-#{t['file']}-Test.mmdb",
|
|
417
451
|
)
|
|
418
452
|
record = reader.send(t['method'], '81.2.69.160')
|
|
419
|
-
assert_equal(
|
|
453
|
+
assert_equal(false, record.country.in_european_union?)
|
|
420
454
|
assert_equal(false, record.registered_country.in_european_union?)
|
|
421
455
|
reader.close
|
|
422
456
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: maxmind-geoip2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- William Storey
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-12-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: connection_pool
|
|
@@ -50,14 +50,14 @@ dependencies:
|
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.
|
|
53
|
+
version: '1.2'
|
|
54
54
|
type: :runtime
|
|
55
55
|
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '1.
|
|
60
|
+
version: '1.2'
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
62
|
name: minitest
|
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -167,10 +167,10 @@ files:
|
|
|
167
167
|
- lib/maxmind/geoip2/record/represented_country.rb
|
|
168
168
|
- lib/maxmind/geoip2/record/subdivision.rb
|
|
169
169
|
- lib/maxmind/geoip2/record/traits.rb
|
|
170
|
+
- lib/maxmind/geoip2/version.rb
|
|
170
171
|
- maxmind-geoip2.gemspec
|
|
171
172
|
- test/data/LICENSE
|
|
172
173
|
- test/data/MaxMind-DB-spec.md
|
|
173
|
-
- test/data/MaxMind-DB-test-metadata-pointers.mmdb
|
|
174
174
|
- test/data/README.md
|
|
175
175
|
- test/data/bad-data/README.md
|
|
176
176
|
- test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb
|
|
@@ -182,7 +182,16 @@ files:
|
|
|
182
182
|
- test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb
|
|
183
183
|
- test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb
|
|
184
184
|
- test/data/bad-data/maxminddb-python/bad-unicode-in-map-key.mmdb
|
|
185
|
+
- test/data/cmd/write-test-data/main.go
|
|
186
|
+
- test/data/go.mod
|
|
187
|
+
- test/data/go.sum
|
|
185
188
|
- test/data/perltidyrc
|
|
189
|
+
- test/data/pkg/writer/decoder.go
|
|
190
|
+
- test/data/pkg/writer/geoip2.go
|
|
191
|
+
- test/data/pkg/writer/ip.go
|
|
192
|
+
- test/data/pkg/writer/maxmind.go
|
|
193
|
+
- test/data/pkg/writer/nestedstructures.go
|
|
194
|
+
- test/data/pkg/writer/writer.go
|
|
186
195
|
- test/data/source-data/GeoIP2-Anonymous-IP-Test.json
|
|
187
196
|
- test/data/source-data/GeoIP2-City-Test.json
|
|
188
197
|
- test/data/source-data/GeoIP2-Connection-Type-Test.json
|
|
@@ -191,11 +200,13 @@ files:
|
|
|
191
200
|
- test/data/source-data/GeoIP2-Domain-Test.json
|
|
192
201
|
- test/data/source-data/GeoIP2-Enterprise-Test.json
|
|
193
202
|
- test/data/source-data/GeoIP2-ISP-Test.json
|
|
203
|
+
- test/data/source-data/GeoIP2-Precision-Enterprise-Sandbox-Test.json
|
|
194
204
|
- test/data/source-data/GeoIP2-Precision-Enterprise-Test.json
|
|
195
205
|
- test/data/source-data/GeoIP2-Static-IP-Score-Test.json
|
|
196
206
|
- test/data/source-data/GeoIP2-User-Count-Test.json
|
|
197
207
|
- test/data/source-data/GeoLite2-ASN-Test.json
|
|
198
|
-
- test/data/source-data/
|
|
208
|
+
- test/data/source-data/GeoLite2-City-Test.json
|
|
209
|
+
- test/data/source-data/GeoLite2-Country-Test.json
|
|
199
210
|
- test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb
|
|
200
211
|
- test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb
|
|
201
212
|
- test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb
|
|
@@ -210,6 +221,8 @@ files:
|
|
|
210
221
|
- test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb
|
|
211
222
|
- test/data/test-data/GeoIP2-User-Count-Test.mmdb
|
|
212
223
|
- test/data/test-data/GeoLite2-ASN-Test.mmdb
|
|
224
|
+
- test/data/test-data/GeoLite2-City-Test.mmdb
|
|
225
|
+
- test/data/test-data/GeoLite2-Country-Test.mmdb
|
|
213
226
|
- test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb
|
|
214
227
|
- test/data/test-data/MaxMind-DB-string-value-entries.mmdb
|
|
215
228
|
- test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb
|
|
@@ -229,7 +242,6 @@ files:
|
|
|
229
242
|
- test/data/test-data/MaxMind-DB-test-pointer-decoder.mmdb
|
|
230
243
|
- test/data/test-data/README.md
|
|
231
244
|
- test/data/test-data/maps-with-pointers.raw
|
|
232
|
-
- test/data/test-data/write-test-data.pl
|
|
233
245
|
- test/data/tidyall.ini
|
|
234
246
|
- test/test_client.rb
|
|
235
247
|
- test/test_model_country.rb
|
|
@@ -244,6 +256,7 @@ metadata:
|
|
|
244
256
|
changelog_uri: https://github.com/maxmind/GeoIP2-ruby/blob/main/CHANGELOG.md
|
|
245
257
|
documentation_uri: https://www.rubydoc.info/gems/maxmind-geoip2
|
|
246
258
|
homepage_uri: https://github.com/maxmind/GeoIP2-ruby
|
|
259
|
+
rubygems_mfa_required: 'true'
|
|
247
260
|
source_code_uri: https://github.com/maxmind/GeoIP2-ruby
|
|
248
261
|
post_install_message:
|
|
249
262
|
rdoc_options: []
|
|
@@ -260,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
260
273
|
- !ruby/object:Gem::Version
|
|
261
274
|
version: '0'
|
|
262
275
|
requirements: []
|
|
263
|
-
rubygems_version: 3.
|
|
276
|
+
rubygems_version: 3.4.18
|
|
264
277
|
signing_key:
|
|
265
278
|
specification_version: 4
|
|
266
279
|
summary: A gem for interacting with the GeoIP2 webservices and databases.
|
|
Binary file
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
All of these but the City and Enterprise files are JSON dumps of the databases
|
|
2
|
-
created by the GeoIP2 build integration tests
|
|
3
|
-
(TestFor::MM::Integration::GeoIP2::Build).
|
|
4
|
-
|
|
5
|
-
Additional data was added to match our legacy test databases.
|
|
6
|
-
|
|
7
|
-
The City file is of unknown origin.
|
|
8
|
-
|
|
9
|
-
The Enterprise file was a single example IP address, modified slightly to
|
|
10
|
-
include all fields. It now has more than that.
|
|
11
|
-
|
|
12
|
-
The Precision file was the normal Enterprise file with an additional marker
|
|
13
|
-
(128.101.101.101) to differentiate the two. It now contains additional
|
|
14
|
-
additions and changes as it is the database used in many MaxMind
|
|
15
|
-
integration tests.
|