# File lib/geoip.rb, line 262
  def country(hostname)
    case @database_type
    when Edition::CITY_REV0, Edition::CITY_REV1, Edition::CITY_REV1_V6
      city(hostname)

    when Edition::REGION_REV0, Edition::REGION_REV1
      region(hostname)

    when Edition::NETSPEED, Edition::NETSPEED_REV1
      netspeed(hostname)

    when Edition::COUNTRY, Edition::PROXY, Edition::COUNTRY_V6
      ip = lookup_ip(hostname)
      if @ip_bits > 32
        ipaddr = IPAddr.new ip
        code = (seek_record(ipaddr.to_i) - COUNTRY_BEGIN)
      else
        # Convert numeric IP address to an integer
        ipnum = iptonum(ip)
        code = (seek_record(ipnum) - @database_segments[0])
      end
      read_country(code, hostname, ip)
    else
      throw "Invalid GeoIP database type #{@database_type}, can't look up Country by IP"
    end
  end