类:Mongo::Address::IPv 6

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb

Overview

如果地址是 IP 地址,则设置支持 IPv 6的解析。

由于:

  • 2.0.0

常量摘要折叠

MATCH =

用于匹配 IPv 6 IP 地址的正则表达式。

由于:

  • 2.0.0

regexp.new(' :: ').冻结

实例属性摘要折叠

类方法摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (host, port, host_name = nil) ⇒ IPv 6

初始化 IPv 6解析程序。

例子:

初始化解析程序。

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

参数:

  • 主机 ( string )

    主机。

  • 端口 ( Integer )

    端口。

由于:

  • 2.0.0



86
87
88
89
90
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第86行

def 初始化(主机, 端口, host_name=nil)
  @host = 主机
  @port = 端口
  @host_name = host_name
end

实例属性详细信息

#主机string (只读)

返回 host 主机。

返回:

  • ( string )

    主机 主机。

由于:

  • 2.0.0



28
29
30
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第28行

def 主机
  @host
end

# host_namestring (只读)

返回 host_name 原始主机名。

返回:

  • ( string )

    host_name 原始主机名。

由于:

  • 2.0.0



31
32
33
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第31行

def host_name
  @host_name
end

# portInteger (readonly)

返回 port 端口。

返回:

  • ( Integer )

    port 端口。

由于:

  • 2.0.0



34
35
36
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第34行

def 端口
  @port
end

类方法详细信息

parse (address) ⇒ Array< string , Integer>

将 IPv 6地址解析为其主机和端口。

例子:

解析地址。

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

参数:

  • 地址 ( string )

    要解析的地址。

返回:

  • ( Array< string , Integer> )

    主机和端口对。

由于:

  • 2.0.0



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第51行

def self.parse(地址)
  # IPAddr 的解析器仅处理 IP 地址,而不处理端口。
  # 因此我们需要自己处理端口
  if 地址 =~ / [\[\]] /
    零件 = 地址.匹配(/\A\[(.+)\](?::(\d+))?\z / _)
    if 零件.nil?
      提高 ArgumentError, "无效的 IPv 6解决: #{ 解决 } "
    end
    主机 = 零件[1]
    端口 = (零件[2] || 27017).to_i
  else
    主机 = 地址
    端口 = 27017
  end
  # 验证托管。
  # 这会引发 IPAddr::InvalidAddressError
  # 在较新的 rubies 上,这是 ArgumentError 的子类
  # 如果主机无效
  开始
    IPAddr.new(主机)
  救援 ArgumentError
    提高 ArgumentError, "无效的 IPv 6解决: #{ 解决 } "
  end
  [ 主机, 端口 ]
end

实例方法详细信息

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

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

根据给定的选项,获取所提供地址类型的套接字。

例子:

获取 IPv 6套接字。

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

参数:

  • socket_timeout (浮点)

    套接字超时。

  • 选项 哈希 (默认为: {}

    选项。

选项哈希 ( options ):

  • :connect_timeout 浮点

    连接超时。

  • :ssl ( true | false )

    是否使用 TLS。

  • :ssl_ca_cert string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_ca_cert_object ( Array<OpenSSL::X 509 ::Certificate> )

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_ca_cert_string string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_cert string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_cert_object ( OpenSSL::X 509 ::Certificate )

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_cert_string string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_key string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_key_object ( OpenSSL::PKey )

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_key_pass_phrase string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_key_string string

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_verify ( true , false )

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_verify_certificate ( true , false )

    与相应的 Client/Socket::SSL 选项相同。

  • :ssl_verify_hostname ( true , false )

    与相应的 Client/Socket::SSL 选项相同。

返回:

由于:

  • 2.0.0



133
134
135
136
137
138
139
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第133行

def 套接字(socket_timeout, 选项 = {})
  if 选项[:ssl]
    套接字::ssl.new(主机, 端口, host_name, socket_timeout, 套接字::PF_INET 6, 选项)
  else
    套接字::TCP.new(主机, 端口, socket_timeout, 套接字::PF_INET 6, 选项)
  end
end