bot_detection 1.0.7 → 1.0.8

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
2
  SHA1:
3
- metadata.gz: 3f9cf46bdce8f49486f6a1bc88f966f2068920aa
4
- data.tar.gz: 7ec14e78a5cf23c8534642f945186b95ccb8f042
3
+ metadata.gz: 2ba34f3960eac21e99b508be65a2d83887d638e5
4
+ data.tar.gz: 5ec50864e018bc31c19463b82d3d25ab9a602dbe
5
5
  SHA512:
6
- metadata.gz: e455e84029af1e41be86f87b381f028ee36443dcb7cb202cceaff4be8516bcdcd50029676d10af21513e4e151f6fdd60f8d19263742567f773cc39f224b72b17
7
- data.tar.gz: 964f6ef6ce7fe47fe5b97cdc474462557056c394e79041f6983056ab9589a8be3160242694b0d602313b33c8ed18cf1dbf3e520c1d4d5e4d8bb6f3117823433c
6
+ metadata.gz: 95f902fae54db98d1f7b43265844ac93921b447f80fff6334b39a71b833c832ca2738736fc675db739673843d9c50921fa4c34f2d64fc008a74269239a5dc9a1
7
+ data.tar.gz: 19884845b25d0c8198d5c68cc6bfd06c843d5f561fa463e61cf1c66593f6a54a1f200efabdeaf3efaa891651ee16aecbbb5a81c30acf291bbcdb690f445f2d1c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ #### Release 1.0.8
4
+
5
+ - Bugfix to check if the remote_ip is the host_ip of the bot
6
+
3
7
  #### Release 1.0.7
4
8
 
5
9
  - added several new user agents, which have been spotted around, to the list
@@ -3,19 +3,19 @@ require_relative 'google_user_agents.rb'
3
3
  require_relative 'bot_user_agents.rb'
4
4
  require_relative 'search_engine_user_agents.rb'
5
5
 
6
- module BotDetection::InstanceMethods
6
+ module BotDetection::InstanceMethods
7
7
  def is_known_crawler?
8
8
  BotDetection::BotUserAgents.include?(user_agent) || is_search_engine_crawler?(reverse_lookup: false)
9
9
  end
10
-
10
+
11
11
  def is_search_engine_crawler? options = {}
12
12
  remote_ip = options.delete(:ip) || options.delete(:ip_address) || request.remote_ip
13
13
  return false if remote_ip.blank?
14
-
14
+
15
15
  reverse_lookup = options.delete(:reverse_lookup)
16
16
  reverse_lookup = true if reverse_lookup.nil?
17
-
18
- return false unless is_known_search_engine_crawler?
17
+
18
+ return false unless is_known_search_engine_crawler?
19
19
  return true unless reverse_lookup
20
20
  return true if options.delete(:development)
21
21
 
@@ -23,11 +23,11 @@ module BotDetection::InstanceMethods
23
23
  return false if host.nil?
24
24
  domain = PublicSuffix.parse(host) rescue nil
25
25
  return false if domain.nil?
26
-
26
+
27
27
  return false unless ["crawl.yahoo.net", "googlebot.com", "google.com", "search.msn.com", "ask.com", "yandex.net", "yandex.com", "yandex.ru", "baidu.com", "baidu.jp"].include?(domain.domain.downcase)
28
28
  host_ip = get_hostip(host)
29
29
  return false if host_ip.nil?
30
- host_ip = remote_ip
30
+ host_ip == remote_ip
31
31
  end
32
32
 
33
33
  def is_google?
@@ -38,11 +38,11 @@ protected
38
38
  def is_known_search_engine_crawler?
39
39
  is_google? || BotDetection::SearchEngineUserAgents.include?(user_agent)
40
40
  end
41
-
41
+
42
42
  def get_hostname(ip_address)
43
43
  Socket.gethostbyaddr(ip_address.split(".").map(&:to_i).pack("CCCC")).first rescue nil
44
44
  end
45
-
45
+
46
46
  def get_hostip(host)
47
47
  Socket.gethostbyname(host).last.unpack("C*").join(".") rescue nil
48
48
  end
@@ -1,3 +1,3 @@
1
1
  module BotDetection
2
- VERSION = "1.0.7"
2
+ VERSION = "1.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bot_detection
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nils Berenbold
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-11 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: public_suffix