6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/booth/core/geolocation.rb', line 6
def self.lookup(ip)
return 'localhost' if ['127.0.0.1', '::1'].include?(ip.to_s)
return unless defined?(::DbipUtil)
record = ::DbipUtil::City.get(ip.to_s)
return unless record
record['city']['names']['de'] ||
record['city']['names']['en'] ||
record['subdivisions']['names']['de'] ||
record['subdivisions']['names']['en'] ||
record['country']['names']['de'] ||
record['country']['names']['en']
rescue IPAddr::InvalidAddressError
nil
end
|