1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
class Intruder < ActiveRecord::Base
attr_accessible :list_type, :key, :points, :bans, :ban_last, :ban_end, :contact_ip, :contact_port, :contact_count, :contact_last, :contacts_per_second, :contacts_per_second_max, :user_agent, :to_user, :comment
LIST_TYPES = ['blacklist', 'whitelist']
validates :list_type,
:presence => true,
:inclusion => { :in => LIST_TYPES }
validates :key,
:presence => true,
:uniqueness => true
validates :contact_ip,
:presence => true,
:uniqueness => true
before_validation :set_key_if_empty
def whois(ip_address = self.contact_ip)
if ! ip_address.blank?
begin
return Whois.whois(ip_address).to_s.gsub(/[^A-Za-z0-9\:\_\-\ \+\.\,\n]/, '')
rescue
return nil
end
end
end
private
def set_key_if_empty
if self.key.blank?
self.key = self.contact_ip
end
end
end
|