logstash-filter-ip2proxy 1.0.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 44aa5f88de1b88bd0f6192f49dc0a084fa583bbc
4
- data.tar.gz: 8e81ae323854308d4065c36ccc8f219aa6e67951
2
+ SHA256:
3
+ metadata.gz: 87fcbfb8ff8f30359feb847bf515396a8c5438af7a311396cb6dbc9b77bc474f
4
+ data.tar.gz: 15e4d42c56188f815de061d6cd7994ae0b6066dfa2243aa25aa70f58f6d787d6
5
5
  SHA512:
6
- metadata.gz: 1e72124b5078da4ab9439ecdd3ebd8e43184cf1a35ad93d8b79166f8917c709619788758d2717c0ac6b57940eabcd7b25391d688538ffc6c9a30a82f0bc16bd4
7
- data.tar.gz: 3d40f3a530cc40ec254b30ae026429accfc039a29d556741e312771b8e0d23023544c85ec533061f9e9d6d412f9cad14cd0a0e5ed84fd41ae53688e4c2d01d21
6
+ metadata.gz: 16b35d7dbd60b07518e8452584bba4925ab7596ce27a5203129ad31a045d5b43d15444da6f5d938bc7b761a2b9222c27e2e3420b4f112ff1ed120b27139033a5
7
+ data.tar.gz: 84d7b726a22040872e078a8b358bef9193d88f24f2e9541ef17e2e010e89d8e58138c2069a24b8d57552a7203455ba8e1b4cbc49b8e5564e4662150903e739f3
data/Gemfile CHANGED
@@ -1,11 +1,11 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
6
- use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
7
-
8
- if Dir.exist?(logstash_path) && use_logstash_source
9
- gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
10
- gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
11
- end
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
6
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
7
+
8
+ if Dir.exist?(logstash_path) && use_logstash_source
9
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
10
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
11
+ end
data/LICENSE CHANGED
@@ -1,13 +1,13 @@
1
- Copyright (c) 2017 IP2Location.com
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
1
+ Copyright (c) 2021 IP2Location.com
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
13
  limitations under the License.
data/README.md CHANGED
@@ -1,72 +1,77 @@
1
- # IP2Proxy Filter Plugin
2
- This is IP2Proxy filter plugin for Logstash that enables Logstash's users to query an IP address if it was being used as open proxy, web proxy, VPN anonymizer and TOR exits. It also appends country, state, city and ISP information of the server. The library took the proxy IP address from **IP2Proxy BIN Data** file.
3
-
4
- For the methods to use IP2Proxy filter plugin with Elastic Stack (Elasticsearch, Filebeat, Logstash, and Kibana), please take a look on this [tutorial](https://www.ip2location.com/tutorials/how-to-use-ip2proxy-filter-plugin-with-elastic-stack).
5
-
6
-
7
- ## Dependencies (IP2PROXY BIN DATA FILE)
8
- This plugin requires IP2Proxy BIN data file to function. You may download the BIN data file at
9
- * IP2Proxy LITE BIN Data (Free): https://lite.ip2location.com
10
- * IP2Proxy Commercial BIN Data (Commercial): https://www.ip2location.com
11
-
12
-
13
- ## Installation
14
- Install this plugin by the following code:
15
- ```
16
- bin/logstash-plugin install logstash-filter-ip2proxy
17
- ```
18
-
19
-
20
- ## Config File Example
21
- ```
22
- input {
23
- beats {
24
- port => "5043"
25
- }
26
- }
27
-
28
- filter {
29
- grok {
30
- match => { "message" => "%{COMBINEDAPACHELOG}"}
31
- }
32
- ip2proxy {
33
- source => "clientip"
34
- }
35
- }
36
-
37
- output {
38
- elasticsearch {
39
- hosts => [ "localhost:9200" ]
40
- }
41
- }
42
- ```
43
-
44
-
45
- ## IP2Proxy Filter Configuration
46
- |Setting|Input type|Required|
47
- |---|---|---|
48
- |source|string|Yes|
49
- |database|a valid filesystem path|No|
50
-
51
- * **source** field is a required setting that containing the IP address or hostname to get the ip information.
52
- * **database** field is an optional setting that containing the path to the IP2Proxy BIN database file.
53
-
54
-
55
- ## Sample Output
56
- |Field|Description|
57
- |---|---|
58
- |ip2proxy.city|the city name of the proxy|
59
- |ip2proxy.country_long|the ISO3166-1 country name of the proxy|
60
- |ip2proxy.country_short|the ISO3166-1 country code (two-characters) of the proxy|
61
- |ip2proxy.is_proxy|Check whether if an IP address was a proxy. Returned value:<ul><li>-1 : errors</li><li>0 : not a proxy</li><li>1 : a proxy</li><li>2 : a data center IP address</li></ul>|
62
- |ip2proxy.isp|the ISP name of the proxy|
63
- |ip2proxy.proxy_type|the proxy type. Please visit <a href="https://www.ip2location.com/databases/px4-ip-proxytype-country-region-city-isp" target="_blank">IP2Location</a> for the list of proxy types supported|
64
- |ip2proxy.region|the ISO3166-2 region name of the proxy|
65
-
66
- ![Example of data](https://www.ip2location.com/images/tutorial/logstash-filter-ip2proxy-screenshot.png)
67
-
68
-
69
- ## Support
70
- Email: support@ip2location.com
71
-
72
- URL: [https://www.ip2location.com](https://www.ip2location.com)
1
+ # IP2Proxy Filter Plugin
2
+ This is IP2Proxy filter plugin for Logstash that enables Logstash's users to reverse search of IP address to detect VPN servers, open proxies, web proxies, Tor exit nodes, search engine robots, data center ranges and residential proxies using IP2Proxy BIN database. Other information available includes proxy type, country, state, city, ISP, domain name, usage type, AS number, AS name, threats, last seen date and provider names. The library took the proxy IP address from **IP2Proxy BIN Data** file.
3
+
4
+ For the methods to use IP2Proxy filter plugin with Elastic Stack (Elasticsearch, Filebeat, Logstash, and Kibana), please take a look on this [tutorial](https://blog.ip2location.com/knowledge-base/how-to-use-ip2proxy-filter-plugin-with-elastic-stack).
5
+
6
+
7
+ ## Dependencies (IP2PROXY BIN DATA FILE)
8
+ This plugin requires IP2Proxy BIN data file to function. You may download the BIN data file at
9
+ * IP2Proxy LITE BIN Data (Free): https://lite.ip2location.com
10
+ * IP2Proxy Commercial BIN Data (Commercial): https://www.ip2location.com
11
+
12
+
13
+ ## Installation
14
+ Install this plugin by the following code:
15
+ ```
16
+ bin/logstash-plugin install logstash-filter-ip2proxy
17
+ ```
18
+
19
+
20
+ ## Config File Example
21
+ ```
22
+ input {
23
+ beats {
24
+ port => "5043"
25
+ }
26
+ }
27
+
28
+ filter {
29
+ grok {
30
+ match => { "message" => "%{COMBINEDAPACHELOG}"}
31
+ }
32
+ ip2proxy {
33
+ source => "clientip"
34
+ }
35
+ }
36
+
37
+ output {
38
+ elasticsearch {
39
+ hosts => [ "localhost:9200" ]
40
+ }
41
+ }
42
+ ```
43
+
44
+
45
+ ## IP2Proxy Filter Configuration
46
+ |Setting|Input type|Required|
47
+ |---|---|---|
48
+ |source|string|Yes|
49
+ |database|a valid filesystem path|No|
50
+
51
+ * **source** field is a required setting that containing the IP address or hostname to get the ip information.
52
+ * **database** field is an optional setting that containing the path to the IP2Proxy BIN database file.
53
+
54
+
55
+ ## Sample Output
56
+ |Field|Description|
57
+ |---|---|
58
+ |ip2proxy.as|the autonomous system (AS) name of proxy's IP address or domain name|
59
+ |ip2proxy.asn|the autonomous system number (ASN) of proxy's IP address or domain name|
60
+ |ip2proxy.city|the city name of the proxy|
61
+ |ip2proxy.country_long|the ISO3166-1 country name of the proxy|
62
+ |ip2proxy.country_short|the ISO3166-1 country code (two-characters) of the proxy|
63
+ |ip2proxy.domain|the domain name of proxy's IP address or domain name|
64
+ |ip2proxy.is_proxy|Check whether if an IP address was a proxy. Returned value:<ul><li>-1 : errors</li><li>0 : not a proxy</li><li>1 : a proxy</li><li>2 : a data center IP address</li></ul>|
65
+ |ip2proxy.isp|the ISP name of the proxy|
66
+ |ip2proxy.last_seen|the last seen days ago value of proxy's IP address or domain name|
67
+ |ip2proxy.provider|the VPN service provider name if available|
68
+ |ip2proxy.proxy_type|the proxy type. Please visit <a href="https://www.ip2location.com/database/px11-ip-proxytype-country-region-city-isp-domain-usagetype-asn-lastseen-threat-residential-provider" target="_blank">IP2Location</a> for the list of proxy types supported|
69
+ |ip2proxy.region|the ISO3166-2 region name of the proxy. Please visit <a href="https://www.ip2location.com/free/iso3166-2" target="_blank">ISO3166-2 Subdivision Code</a> for the information of ISO3166-2 supported|
70
+ |ip2proxy.thread|the threat type of the proxy|
71
+ |ip2proxy.usage_type|the usage type classification of the proxy. Please visit <a href="https://www.ip2location.com/database/px11-ip-proxytype-country-region-city-isp-domain-usagetype-asn-lastseen-threat-residential-provider" target="_blank">IP2Location</a> for the list of usage types supported|
72
+
73
+
74
+ ## Support
75
+ Email: support@ip2location.com
76
+
77
+ URL: [https://www.ip2location.com](https://www.ip2location.com)
@@ -1,50 +1,154 @@
1
- # encoding: utf-8
2
- require "logstash/filters/base"
3
- require "logstash/namespace"
4
-
5
- require "logstash-filter-ip2proxy_jars"
6
-
7
- class LogStash::Filters::IP2Proxy < LogStash::Filters::Base
8
- config_name "ip2proxy"
9
-
10
- # The path to the IP2Proxy.BIN database file which Logstash should use.
11
- # If not specified, this will default to the IP2PROXY-LITE-PX4.BIN database that embedded in the plugin.
12
- config :database, :validate => :path
13
-
14
- # The field containing the IP address.
15
- # If this field is an array, only the first value will be used.
16
- config :source, :validate => :string, :required => true
17
-
18
- # The field used to define iplocation as target.
19
- config :target, :validate => :string, :default => 'ip2proxy'
20
-
21
- public
22
- def register
23
- if @database.nil?
24
- @database = ::Dir.glob(::File.join(::File.expand_path("../../../vendor/", ::File.dirname(__FILE__)),"IP2PROXY-LITE-PX4.BIN")).first
25
-
26
- if @database.nil? || !File.exists?(@database)
27
- raise "You must specify 'database => ...' in your ip2proxy filter (I looked for '#{@database}')"
28
- end
29
- end
30
-
31
- @logger.info("Using ip2proxy database", :path => @database)
32
-
33
- @ip2proxyfilter = org.logstash.filters.IP2ProxyFilter.new(@source, @target, @database)
34
- end
35
-
36
- public
37
- def filter(event)
38
- return unless filter?(event)
39
- if @ip2proxyfilter.handleEvent(event)
40
- filter_matched(event)
41
- else
42
- tag_iplookup_unsuccessful(event)
43
- end
44
- end
45
-
46
- def tag_iplookup_unsuccessful(event)
47
- @logger.debug? && @logger.debug("IP #{event.get(@source)} was not found in the database", :event => event)
48
- end
49
-
50
- end # class LogStash::Filters::IP2Proxy
1
+ # encoding: utf-8
2
+ require "logstash/filters/base"
3
+ require "logstash/namespace"
4
+
5
+ require "logstash-filter-ip2proxy_jars"
6
+
7
+ class LogStash::Filters::IP2Proxy < LogStash::Filters::Base
8
+ config_name "ip2proxy"
9
+
10
+ # The path to the IP2Proxy.BIN database file which Logstash should use.
11
+ # If not specified, this will default to the IP2PROXY-LITE-PX4.BIN database that embedded in the plugin.
12
+ config :database, :validate => :path
13
+
14
+ # The field containing the IP address.
15
+ # If this field is an array, only the first value will be used.
16
+ config :source, :validate => :string, :required => true
17
+
18
+ # The field used to define iplocation as target.
19
+ config :target, :validate => :string, :default => 'ip2proxy'
20
+
21
+ # The field used to define the size of the cache. It is not required and the default value is 10 000
22
+ config :cache_size, :validate => :number, :required => false, :default => 10_000
23
+
24
+ public
25
+ def register
26
+ if @database.nil?
27
+ @database = ::Dir.glob(::File.join(::File.expand_path("../../../vendor/", ::File.dirname(__FILE__)),"IP2PROXY-LITE-PX1.BIN")).first
28
+
29
+ if @database.nil? || !File.exists?(@database)
30
+ raise "You must specify 'database => ...' in your ip2proxy filter (I looked for '#{@database}')"
31
+ end
32
+ end
33
+
34
+ @logger.info("Using ip2proxy database", :path => @database)
35
+
36
+ @ip2proxyfilter = org.logstash.filters.IP2ProxyFilter.new(@source, @target, @database)
37
+ end
38
+
39
+ public
40
+ def filter(event)
41
+ ip = event.get(@source)
42
+
43
+ return unless filter?(event)
44
+ if value = Cache.find(event, ip, @ip2proxyfilter, @cache_size).get('ip2proxy')
45
+ event.set('ip2proxy', value)
46
+ filter_matched(event)
47
+ else
48
+ tag_iplookup_unsuccessful(event)
49
+ end
50
+ end
51
+
52
+ def tag_iplookup_unsuccessful(event)
53
+ @logger.debug? && @logger.debug("IP #{event.get(@source)} was not found in the database", :event => event)
54
+ end
55
+
56
+ end # class LogStash::Filters::IP2Proxy
57
+
58
+ class OrderedHash
59
+ ONE = 1
60
+
61
+ attr_reader :times_queried # ip -> times queried
62
+ attr_reader :hash
63
+
64
+ def initialize
65
+ @times_queried = Hash.new(0) # ip -> times queried
66
+ @hash = {} # number of hits -> array of ips
67
+ end
68
+
69
+ def add(key)
70
+ hash[ONE] ||= []
71
+ hash[ONE] << key
72
+ times_queried[key] = ONE
73
+ end
74
+
75
+ def reorder(key)
76
+ number_of_queries = times_queried[key]
77
+
78
+ hash[number_of_queries].delete(key)
79
+ hash.delete(number_of_queries) if hash[number_of_queries].empty?
80
+
81
+ hash[number_of_queries + 1] ||= []
82
+ hash[number_of_queries + 1] << key
83
+ end
84
+
85
+ def increment(key)
86
+ add(key) unless times_queried.has_key?(key)
87
+ reorder(key)
88
+ times_queried[key] += 1
89
+ end
90
+
91
+ def delete_least_used
92
+ first_pile_with_something.shift.tap { |key| times_queried.delete(key) }
93
+ end
94
+
95
+ def first_pile_with_something
96
+ hash[hash.keys.min]
97
+ end
98
+ end
99
+
100
+ class Cache
101
+ ONE_DAY_IN_SECONDS = 86_400
102
+
103
+ @cache = {} # ip -> event
104
+ @timestamps = {} # ip -> time of caching
105
+ @times_queried = OrderedHash.new # ip -> times queried
106
+ @mutex = Mutex.new
107
+
108
+ class << self
109
+ attr_reader :cache
110
+ attr_reader :timestamps
111
+ attr_reader :times_queried
112
+
113
+ def find(event, ip, filter, cache_size)
114
+ synchronize do
115
+ if cache.has_key?(ip)
116
+ refresh_event(event, ip, filter) if too_old?(ip)
117
+ else
118
+ if cache_full?(cache_size)
119
+ make_room
120
+ end
121
+ cache_event(event, ip, filter)
122
+ end
123
+ times_queried.increment(ip)
124
+ cache[ip]
125
+ end
126
+ end
127
+
128
+ def too_old?(ip)
129
+ timestamps[ip] < Time.now - ONE_DAY_IN_SECONDS
130
+ end
131
+
132
+ def make_room
133
+ key = times_queried.delete_least_used
134
+ cache.delete(key)
135
+ timestamps.delete(key)
136
+ end
137
+
138
+ def cache_full?(cache_size)
139
+ cache.size >= cache_size
140
+ end
141
+
142
+ def cache_event(event, ip, filter)
143
+ filter.handleEvent(event)
144
+ cache[ip] = event
145
+ timestamps[ip] = Time.now
146
+ end
147
+
148
+ def synchronize(&block)
149
+ @mutex.synchronize(&block)
150
+ end
151
+
152
+ alias_method :refresh_event, :cache_event
153
+ end
154
+ end
@@ -1,3 +1,3 @@
1
- require 'jar_dependencies'
2
- require_jar('com.ip2proxy.ip2proxy', 'ip2proxy', '1.0.1')
3
- require_jar('org.logstash.filters', 'logstash-filter-ip2proxy', '1.0.0')
1
+ require 'jar_dependencies'
2
+ require_jar('com.ip2proxy.ip2proxy', 'ip2proxy', '3.1.0')
3
+ require_jar('org.logstash.filters', 'logstash-filter-ip2proxy', '2.2.0')
@@ -1,25 +1,25 @@
1
- Gem::Specification.new do |s|
2
-
3
- s.name = 'logstash-filter-ip2proxy'
4
- s.version = '1.0.0'
5
- s.licenses = ['Apache License (2.0)']
6
- s.summary = "Logstash filter IP2Proxy"
7
- s.description = "IP2Proxy filter plugin for Logstash enables Logstash's users to query an IP address if it was being used as open proxy, web proxy, VPN servers and TOR exits. It also appends country, state, city and ISP information of the server."
8
- s.authors = ["IP2Location"]
9
- s.email = 'support@ip2location.com'
10
- s.homepage = "https://www.ip2location.com"
11
- s.require_paths = ["lib", "vendor/jar-dependencies"]
12
-
13
- # Files
14
- s.files = Dir["lib/**/*",'spec/**/*',"vendor/**/*","vendor/jar-dependencies/**/*.jar","*.gemspec","*.md","Gemfile","LICENSE"]
15
-
16
- # Tests
17
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
18
-
19
- # Special flag to let us know this is actually a logstash plugin
20
- s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
21
-
22
- # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
24
- s.add_development_dependency "logstash-devutils"
25
- end
1
+ Gem::Specification.new do |s|
2
+
3
+ s.name = 'logstash-filter-ip2proxy'
4
+ s.version = '2.2.0'
5
+ s.licenses = ['Apache-2.0']
6
+ s.summary = "Logstash filter IP2Proxy"
7
+ s.description = "IP2Proxy filter plugin for Logstash enables Logstash's users to reverse search of IP address to detect VPN servers, open proxies, web proxies, Tor exit nodes, search engine robots, data center ranges and residential proxies using IP2Proxy BIN database."
8
+ s.authors = ["IP2Location"]
9
+ s.email = 'support@ip2location.com'
10
+ s.homepage = "https://www.ip2location.com"
11
+ s.require_paths = ["lib", "vendor/jar-dependencies"]
12
+
13
+ # Files
14
+ s.files = Dir["lib/**/*",'spec/**/*',"vendor/**/*","vendor/jar-dependencies/**/*.jar","*.gemspec","*.md","Gemfile","LICENSE"]
15
+
16
+ # Tests
17
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
18
+
19
+ # Special flag to let us know this is actually a logstash plugin
20
+ s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
21
+
22
+ # Gem dependencies
23
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
24
+ s.add_development_dependency "logstash-devutils"
25
+ end
@@ -1,27 +1,27 @@
1
- # encoding: utf-8
2
- require_relative '../spec_helper'
3
- require "logstash/filters/ip2proxy"
4
-
5
- IP2PROXYDB = ::Dir.glob(::File.expand_path("../../vendor/", ::File.dirname(__FILE__))+"/IP2PROXY-LITE-PX4.BIN").first
6
-
7
- describe LogStash::Filters::IP2Proxy do
8
-
9
- describe "normal test" do
10
- config <<-CONFIG
11
- filter {
12
- ip2proxy {
13
- source => "ip"
14
- #database => "#{IP2PROXYDB}"
15
- }
16
- }
17
- CONFIG
18
-
19
- sample("ip" => "8.8.8.8") do
20
- expect(subject.get("ip2proxy")).not_to be_empty
21
- expect(subject.get("ip2proxy")["country_short"]).to eq("US")
22
- end
23
- end
24
-
25
- end
26
-
1
+ # encoding: utf-8
2
+ require_relative '../spec_helper'
3
+ require "logstash/filters/ip2proxy"
4
+
5
+ IP2PROXYDB = ::Dir.glob(::File.expand_path("../../vendor/", ::File.dirname(__FILE__))+"/IP2PROXY-LITE-PX1.BIN").first
6
+
7
+ describe LogStash::Filters::IP2Proxy do
8
+
9
+ describe "normal test" do
10
+ config <<-CONFIG
11
+ filter {
12
+ ip2proxy {
13
+ source => "ip"
14
+ #database => "#{IP2PROXYDB}"
15
+ }
16
+ }
17
+ CONFIG
18
+
19
+ sample("ip" => "8.8.8.8") do
20
+ expect(subject.get("ip2proxy")).not_to be_empty
21
+ expect(subject.get("ip2proxy")["country_short"]).to eq("US")
22
+ end
23
+ end
24
+
25
+ end
26
+
27
27
  end
data/spec/spec_helper.rb CHANGED
@@ -1,2 +1,2 @@
1
- # encoding: utf-8
2
- require "logstash/devutils/rspec/spec_helper"
1
+ # encoding: utf-8
2
+ require "logstash/devutils/rspec/spec_helper"
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:852f55814fb14e8de5b47d416b95f1ce58757256484fda7d2d4462900db4229a
3
+ size 229021771
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-ip2proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - IP2Location
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-24 00:00:00.000000000 Z
11
+ date: 2021-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core-plugin-api
@@ -38,9 +38,10 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: IP2Proxy filter plugin for Logstash enables Logstash's users to query
42
- an IP address if it was being used as open proxy, web proxy, VPN servers and TOR
43
- exits. It also appends country, state, city and ISP information of the server.
41
+ description: IP2Proxy filter plugin for Logstash enables Logstash's users to reverse
42
+ search of IP address to detect VPN servers, open proxies, web proxies, Tor exit
43
+ nodes, search engine robots, data center ranges and residential proxies using IP2Proxy
44
+ BIN database.
44
45
  email: support@ip2location.com
45
46
  executables: []
46
47
  extensions: []
@@ -54,12 +55,12 @@ files:
54
55
  - logstash-filter-ip2proxy.gemspec
55
56
  - spec/filters/ip2proxy_spec.rb
56
57
  - spec/spec_helper.rb
57
- - vendor/IP2PROXY-LITE-PX4.BIN
58
- - vendor/jar-dependencies/com/ip2proxy/ip2proxy/ip2proxy/1.0.1/ip2proxy-1.0.1.jar
59
- - vendor/jar-dependencies/org/logstash/filters/logstash-filter-ip2proxy/1.0.0/logstash-filter-ip2proxy-1.0.0.jar
58
+ - vendor/IP2PROXY-LITE-PX1.BIN
59
+ - vendor/jar-dependencies/com/ip2proxy/ip2proxy/ip2proxy/3.1.0/ip2proxy-3.1.0.jar
60
+ - vendor/jar-dependencies/org/logstash/filters/logstash-filter-ip2proxy/2.2.0/logstash-filter-ip2proxy-2.2.0.jar
60
61
  homepage: https://www.ip2location.com
61
62
  licenses:
62
- - Apache License (2.0)
63
+ - Apache-2.0
63
64
  metadata:
64
65
  logstash_plugin: 'true'
65
66
  logstash_group: filter
@@ -80,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
81
  version: '0'
81
82
  requirements: []
82
83
  rubyforge_project:
83
- rubygems_version: 2.6.14
84
+ rubygems_version: 2.7.6.2
84
85
  signing_key:
85
86
  specification_version: 4
86
87
  summary: Logstash filter IP2Proxy
Binary file