# File lib/cidr.rb, line 1375
    def nth(index, options=nil)
        known_args = [:Objectify, :Short]
        objectify = false
        short = false

        # validate list
        raise ArgumentError, "Integer expected for argument 'index' but " +
                             "#{index.class} provided." if (!index.kind_of?(Integer) )

        # validate options
        if (options)     
            raise ArgumentError, "Hash expected for argument 'options' but #{options.class} provided." if (!options.kind_of?(Hash) )
            NetAddr.validate_args(options.keys,known_args)

            if( options.has_key?(:Short) && options[:Short] == true )
                short = true
            end

            if( options.has_key?(:Objectify) && options[:Objectify] == true )
                    objectify = true
            end
        end

        my_ip = @network + index
        if ( (@hostmask | my_ip) == (@hostmask | @network) )

            if (!objectify)
                my_ip = NetAddr.ip_int_to_str(my_ip, @version)
                my_ip = NetAddr.shorten(my_ip) if (short && @version == 6)
            else
                my_ip = NetAddr.cidr_build(@version,my_ip)
             end

        else
            raise BoundaryError, "Index of #{index} returns IP that is out of " +
                                 "bounds of CIDR network."
        end

        return(my_ip)
    end