dap 1.2.5 → 1.2.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4980afacd4cce04c5936b8c973880dce051c5a7
4
- data.tar.gz: a0519f28afc510bd44a3dd363ba99e2ef4c71b2a
3
+ metadata.gz: bc89b6c18e84edad0cd26e060a2f398dc2e92593
4
+ data.tar.gz: 870aa9dc76ace284294e5594d5c260722beed4d6
5
5
  SHA512:
6
- metadata.gz: c786cef2af1b7ac4debdecbf19c211aba042e80802ce1384fd44d482785b16b6792d9747edd4bf0bfaf362a77bd247afa48930ff7c02b81e94306bea7c6e0346
7
- data.tar.gz: db00b788cfdfc5fb979313df8fbfd0dbade60847fabad678712539c9dd008787da48d7659b98cd8913048583de9b0829deec14d490b2cc2b1f529532067f29ba
6
+ metadata.gz: 43e447d2885b368ecfe3e0c2a79591d7e24f6d35f4815ce560e1f4e25684aa99a63fb5d729bb60e3224d4ad31da43f027ee2e0fbe3c433cb88b09e6e4081cd13
7
+ data.tar.gz: ca4913ec986081556e90cbe9d330926da25cc00e5d0b4367285ca46ac31105f0da869181c4fe024bd20f40d3bd10ce8486a7f3b5f32924bb823b9b69430ea7b0
@@ -33,6 +33,13 @@ module GeoIP2Library
33
33
  nil
34
34
  end
35
35
 
36
+ def get_maxmind_data(db, ip)
37
+ begin
38
+ db.get(ip)
39
+ rescue IPAddr::InvalidAddressError
40
+ end
41
+ end
42
+
36
43
  def remove_empties(hash)
37
44
  hash.each_pair do |k,v|
38
45
  if v.empty?
@@ -78,8 +85,10 @@ class FilterGeoIP2City
78
85
  unless @@geo_city
79
86
  raise "No MaxMind GeoIP2::City data found"
80
87
  end
81
- return unless (geo_hash = @@geo_city.get(ip))
88
+
82
89
  ret = defaults
90
+ geo_hash = get_maxmind_data(@@geo_city, ip)
91
+ return unless geo_hash
83
92
 
84
93
  if geo_hash.include?("subdivisions")
85
94
  # handle countries that are divided into various subdivisions. generally 1, sometimes 2
@@ -143,9 +152,9 @@ class FilterGeoIP2Asn
143
152
  unless @@geo_asn
144
153
  raise "No MaxMind GeoIP2::ASN data found"
145
154
  end
146
- geo_hash = @@geo_asn.get(ip)
147
- return unless geo_hash
148
155
 
156
+ geo_hash = get_maxmind_data(@@geo_asn, ip)
157
+ return unless geo_hash
149
158
  ret = {}
150
159
 
151
160
  if geo_hash.include?("autonomous_system_number")
@@ -174,9 +183,9 @@ class FilterGeoIP2Isp
174
183
  unless @@geo_isp
175
184
  raise "No MaxMind GeoIP2::ISP data found"
176
185
  end
177
- geo_hash = @@geo_isp.get(ip)
178
- return unless geo_hash
179
186
 
187
+ geo_hash = get_maxmind_data(@@geo_isp, ip)
188
+ return unless geo_hash
180
189
  ret = {}
181
190
 
182
191
  if geo_hash.include?("autonomous_system_number")
@@ -1,3 +1,3 @@
1
1
  module Dap
2
- VERSION = "1.2.5"
2
+ VERSION = "1.2.6"
3
3
  end
@@ -160,6 +160,11 @@ load ./test_common
160
160
  run bash -c "echo 2a02:d9c0:: | GEOIP2_CITY_DATABASE_PATH=test/test_data/geoip2/GeoIP2-City-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_city line + json | jq -Sc -r ."
161
161
  assert_success
162
162
  assert_output '{"line":"2a02:d9c0::","line.geoip2.city.city.geoname_id":"0","line.geoip2.city.continent.code":"AS","line.geoip2.city.continent.geoname_id":"6255147","line.geoip2.city.continent.name":"Asia","line.geoip2.city.country.geoname_id":"298795","line.geoip2.city.country.is_in_european_union":"false","line.geoip2.city.country.iso_code":"TR","line.geoip2.city.country.name":"Turkey","line.geoip2.city.location.accuracy_radius":"100","line.geoip2.city.location.latitude":"39.05901","line.geoip2.city.location.longitude":"34.91155","line.geoip2.city.location.metro_code":"0","line.geoip2.city.location.time_zone":"Europe/Istanbul","line.geoip2.city.registered_country.geoname_id":"298795","line.geoip2.city.registered_country.is_in_european_union":"false","line.geoip2.city.registered_country.iso_code":"TR","line.geoip2.city.registered_country.name":"Turkey","line.geoip2.city.represented_country.geoname_id":"0","line.geoip2.city.represented_country.is_in_european_union":"false","line.geoip2.city.traits.is_anonymous_proxy":"false","line.geoip2.city.traits.is_satellite_provider":"false"}'
163
+
164
+ # test invalid IP
165
+ run bash -c "echo test | GEOIP2_CITY_DATABASE_PATH=test/test_data/geoip2/GeoIP2-City-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_city line + json | jq -Sc -r ."
166
+ assert_success
167
+ assert_output '{"line":"test"}'
163
168
  }
164
169
 
165
170
  @test "geo_ip2_asn" {
@@ -171,13 +176,20 @@ load ./test_common
171
176
  run bash -c "echo 2600:7000:: | GEOIP2_ASN_DATABASE_PATH=test/test_data/geoip2/GeoLite2-ASN-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_asn line + json | jq -Sc -r ."
172
177
  assert_success
173
178
  assert_output '{"line":"2600:7000::","line.geoip2.asn.asn":"AS6939","line.geoip2.asn.asn_org":"Hurricane Electric, Inc."}'
179
+
180
+ # test invalid IP
181
+ run bash -c "echo test | GEOIP2_ASN_DATABASE_PATH=test/test_data/geoip2/GeoLite2-ASN-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_asn line + json | jq -Sc -r ."
182
+ assert_success
183
+ assert_output '{"line":"test"}'
174
184
  }
175
185
 
176
186
  @test "geo_ip2_isp" {
177
- run bash -c "echo -e '12.81.92.0\n2600:7000::' | GEOIP2_ISP_DATABASE_PATH=test/test_data/geoip2/GeoIP2-ISP-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_isp line + json | jq -Sc -r ."
187
+ run bash -c "echo -e '12.81.92.0\n2600:7000::\ntest' | GEOIP2_ISP_DATABASE_PATH=test/test_data/geoip2/GeoIP2-ISP-Test.mmdb $DAP_EXECUTABLE lines + geo_ip2_isp line + json | jq -Sc -r ."
178
188
  assert_line --index 0 '{"line":"12.81.92.0","line.geoip2.isp.asn":"AS7018","line.geoip2.isp.isp":"AT&T Services","line.geoip2.isp.org":"AT&T Services"}'
179
189
  # test IPv6
180
190
  assert_line --index 1 '{"line":"2600:7000::","line.geoip2.isp.asn":"AS6939","line.geoip2.isp.asn_org":"Hurricane Electric, Inc."}'
191
+ # test invalid IP
192
+ assert_line --index 2 '{"line":"test"}'
181
193
  }
182
194
 
183
195
  @test "geo_ip2_legacy_compat" {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rapid7 Research
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-02 00:00:00.000000000 Z
11
+ date: 2019-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec