模块 IPSocket
公共类方法
getaddress(s) 点击切换源代码
返回一个基于 String
表示的有效 DNS 主机名、IPv4 或 IPv6 地址。
IPSocket.getaddress 'localhost' #=> "::1" IPSocket.getaddress 'broadcasthost' #=> "255.255.255.255" IPSocket.getaddress 'www.ruby-lang.org' #=> "221.186.184.68" IPSocket.getaddress 'www.ccc.de' #=> "2a00:1328:e102:ccc0::122"
# File ipaddr.rb, line 833 def getaddress(s) if valid_v6?(s) s else getaddress_orig(s) end end
也别名为:getaddress_orig
私有类方法
valid_v6?(addr) 点击切换源代码
# File ipaddr.rb, line 803 def valid_v6?(addr) case addr when IPAddr::RE_IPV6ADDRLIKE_FULL if $2 $~[2,4].all? {|i| i.to_i < 256 } else true end when IPAddr::RE_IPV6ADDRLIKE_COMPRESSED if $4 addr.count(':') <= 6 && $~[4,4].all? {|i| i.to_i < 256} else addr.count(':') <= 7 end else false end end