Clase: Mongo::Address::IPv6

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/address/ipv6.rb

Overview

Configura la resolución con soporte con IPv6 si la dirección es una dirección ip.

Desde:

  • 2.0.0

Resumen de constantes colapsar

MATCH =

La expresión regular que se debe utilizar para hacer coincidir una dirección IP IPv6.

Desde:

  • 2.0.0

Regexp.Nuevo('::').freeze

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#inicializar(host, puerto, nombre_host = nil) ⇒ IPv6

Inicializa el resolutor IPv6.

Ejemplos:

Inicializa el resolvedor.

IPv6.new("::1", 28011, 'localhost')

Parámetros:

  • host (string)

    El host.

  • Puerto (Número entero)

    El puerto.

Desde:

  • 2.0.0



82
83
84
85
86
# Archivo 'lib/mongo/address/ipv6.rb', línea 82

def inicializar(host, Puerto, host_name = nulo)
  @host = host
  @port = Puerto
  @host_name = host_name
end

Detalles de atributo de instancias

#hostString (solo lectura)

Retorna el host El host.

Devuelve:

  • (string)

    host El host.

Desde:

  • 2.0.0



25
26
27
# Archivo 'lib/mongo/address/ipv6.rb', línea 25

def host
  @host
end

#nombre_del_hoststring (solo lectura)

Devuelve host_name El nombre de host original.

Devuelve:

  • (string)

    host_name El nombre original del host.

Desde:

  • 2.0.0



28
29
30
# Archivo 'lib/mongo/address/ipv6.rb', línea 28

def host_name
  @host_name
end

#puertoEntero (solo lectura)

Devuelve el puerto El puerto.

Devuelve:

  • (Número entero)

    puerto El puerto.

Desde:

  • 2.0.0



31
32
33
# Archivo 'lib/mongo/address/ipv6.rb', línea 31

def Puerto
  @port
end

Detalles del método de clase

.parse(address) ⇒ arreglo<string, Integer>

Analiza una dirección IPv6 en su host y puerto.

Ejemplos:

Analice la dirección.

IPv6.parse("[::1]:28011")

Parámetros:

  • dirección (string)

    La dirección a analizar.

Devuelve:

  • (arreglo<string, Integer>)

    El par de host y puerto.

Desde:

  • 2.0.0



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Archivo 'lib/mongo/address/ipv6.rb', línea 48

def sí mismo.parse(dirección)
  # El analizador de IPAddr solo gestiona direcciones IP, no puertos.
  # Por lo tanto, necesitamos gestionar el puerto nosotros mismos
  si /[\[\]]/.¿corresponde?(dirección)
    piezas = dirección.coincidencia(/\A\[(.+)\](?::(\d+))?\z/)
    propagar ArgumentError, "Dirección IPv6 no válida: #{address}" si piezas.nil?

    host = piezas[1]
    Puerto = (piezas[2] || 27_017).to_i
  else
    host = dirección
    Puerto = 27_017
  end
  # Validar el host.
  # Esto generará un IPAddr::InvalidAddressError
  # en nuevos rubíes, que es una subclase de ArgumentError
  # si el host no es válido
  begin
    IPAddr.Nuevo(host)
  rescate ArgumentError
    propagar ArgumentError, "Dirección IPv6 no válida: #{address}"
  end
  [ host, Puerto ]
end

Detalles del método de instancia

#socket(socket_timeout, options = {}) ⇒ Mongo::Socket::SSL, Mongo::Socket::TCP

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtén un socket para el tipo de dirección proporcionado, dadas las opciones.

Ejemplos:

Obtener un socket IPv6.

ipv4.socket(5, :ssl => true)

Parámetros:

  • socket_timeout (Float)

    El tiempo de espera del socket.

  • opciones (encriptada) (por defecto: {})

    Las opciones.

Opciones Hash (options):

  • timeout_conexión (Flotante)

    Tiempo de espera de conexión.

  • :ssl (true | false)

    Si se debe usar TLS.

  • archivo CA de seguridad SSL (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • Objeto ssl_ca_cert (Array<OpenSSL::X509::Certificate>)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • :ssl_ca_cert_string (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • certificado SSL (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • Certificado SSL (OpenSSL::X509::Certificate)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • :ssl_cert_string (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • :ssl_key (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • :ssl_key_object (OpenSSL::PKey)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • frase_de_paso_de_clave_ssl (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • Cadena de clave SSL (string)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • Verificación SSL (verdadero, falso)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • ssl_verificar_certificado (verdadero, falso)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

  • :ssl_verify_hostname (verdadero, falso)

    Igual que la opción correspondiente de Cliente/Socket::SSL.

Devuelve:

Desde:

  • 2.0.0



129
130
131
132
133
134
135
# Archivo 'lib/mongo/address/ipv6.rb', línea 129

def enchufe(socket_timeout, opciones = {})
  si opciones[:ssl]
    Socket::ssl.Nuevo(host, Puerto, host_name, socket_timeout, Socket::PF_INET6, opciones)
  else
    Socket::TCP.Nuevo(host, Puerto, socket_timeout, Socket::PF_INET6, opciones)
  end
end