# File lib/geoip.rb, line 320
  def region(hostname)
    if (@database_type == Edition::CITY_REV0 ||
        @database_type == Edition::CITY_REV1 ||
        @database_type == Edition::CITY_REV1_V6)
      return city(hostname)
    end

    if (@database_type == Edition::REGION_REV0 ||
        @database_type == Edition::REGION_REV1)
      ip = lookup_ip(hostname)
      ipnum = iptonum(ip)
      pos = seek_record(ipnum)
    else
      throw "Invalid GeoIP database type, can't look up Region by IP"
    end

    if pos == @database_segments[0]
      nil
    else
      read_region(pos, hostname, ip)
    end
  end