# File lib/geoip.rb, line 364
  def city(hostname)
    ip = lookup_ip(hostname)

    if (@database_type == Edition::CITY_REV0 ||
        @database_type == Edition::CITY_REV1)
      # Convert numeric IP address to an integer
      ipnum = iptonum(ip)
      pos = seek_record(ipnum)
    elsif (@database_type == Edition::CITY_REV1_V6)
      ipaddr = IPAddr.new ip
      pos = seek_record(ipaddr.to_i)
    else
      throw "Invalid GeoIP database type, can't look up City by IP"
    end

    read_city(pos-@database_segments[0], hostname, ip)
  end