类:Mongo::Address::IPv 6
- 继承:
-
对象
- 对象
- Mongo::Address::IPv 6
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb
Overview
如果地址是 IP 地址,则设置支持 IPv 6的解析。
常量摘要折叠
- MATCH =
用于匹配 IPv 6 IP 地址的正则表达式。
regexp.new(' :: ').冻结
实例属性摘要折叠
-
#主机⇒ string
只读
主机 主机。
-
# host_name ⇒ string
只读
Host_name 原始主机名。
-
# port ⇒ Integer
只读
端口 端口。
类方法摘要折叠
-
。 parse (address) ⇒ Array< string , Integer>
将 IPv 6地址解析为其主机和端口。
实例方法摘要折叠
-
#initialize (host, port, host_name = nil) ⇒ IPv 6
构造函数
初始化 IPv 6解析程序。
-
# socket (socket_timeout, options = {}) ⇒ Mongo::Socket::SSL, Mongo::Socket::TCP
private
根据给定的选项,获取所提供地址类型的套接字。
构造函数详情
#initialize (host, port, host_name = nil) ⇒ IPv 6
初始化 IPv 6解析程序。
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 主机。
28 29 30 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第28行 def 主机 @host end |
# host_name ⇒ string (只读)
返回 host_name 原始主机名。
31 32 33 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/address/ipv 6 .rb', 第31行 def host_name @host_name end |
# port ⇒ Integer (readonly)
返回 port 端口。
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地址解析为其主机和端口。
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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
根据给定的选项,获取所提供地址类型的套接字。
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 |