- def self.IPLocation(ip_address)
- Timeout::timeout(4) do
- Net::HTTP.start('api.hostip.info') do |http|
- country = http.get("/country.php?ip=#{ip_address}").body
- country = "GB" if country == "UK"
- Net::HTTP.start('ws.geonames.org') do |http|
- xml = REXML::Document.new(http.get("/countryInfo?country=#{country}").body)
- xml.elements.each("geonames/country") do |ele|
- minlon = ele.get_text("bBoxWest").to_s
- minlat = ele.get_text("bBoxSouth").to_s
- maxlon = ele.get_text("bBoxEast").to_s
- maxlat = ele.get_text("bBoxNorth").to_s
- return { :minlon => minlon, :minlat => minlat, :maxlon => maxlon, :maxlat => maxlat }
- end
+ def self.IPToCountry(ip_address)
+ Timer.timeout(4) do
+ ipinfo = Quova::IpInfo.new(ip_address)
+
+ if ipinfo.status == Quova::Success then
+ country = ipinfo.country_code
+ else
+ Net::HTTP.start('api.hostip.info') do |http|
+ country = http.get("/country.php?ip=#{ip_address}").body
+ country = "GB" if country == "UK"