Module: Ipgeobase
- Defined in:
- lib/ipgeobase.rb,
lib/ipgeobase/task.rb,
lib/ipgeobase/engine.rb,
lib/ipgeobase/railtie.rb,
lib/ipgeobase/version.rb,
app/models/ipgeobase/ip.rb,
app/models/ipgeobase/city.rb,
app/models/ipgeobase/country.rb
Defined Under Namespace
Modules: Task
Classes: City, Country, Engine, Ip, Railtie
Constant Summary
collapse
- VERSION =
"1.0.1"
Class Method Summary
collapse
Class Method Details
.find_region_by_ip(user_ip) ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/ipgeobase.rb', line 16
def find_region_by_ip(user_ip)
long = ip2long(user_ip)
ip = Ipgeobase::Ip.where(start_ip: { '$lte' => long }).order_by({ start_ip: -1 }).limit(1).first
if ip.nil? or ip.end_ip < long
nil
else
ip.city
end
end
|
.ip2long(ip) ⇒ Object
26
27
28
|
# File 'lib/ipgeobase.rb', line 26
def ip2long(ip)
IPAddr.new(ip, Socket::AF_INET).to_i
end
|