Ruby sshkit IPv6 字符串寻址问题
Ruby sshkit IPv6 string addressing issues
我确定这是我的问题,我从根本上误解了。我正在使用 sshkit
连接并上传一些文件到具有 IPv6 寻址的服务器。
我可以通过 SSH 连接到具有如下地址的服务器:
2001:aaa:bbb:cc:dddd:eeee:ffff:gggg
没有问题,直到我尝试利用 sshkit
来做同样的事情。下面的示例说明了相同的 IPv6 字符串如何在脚本 I am 运行:
中的数组(具有许多地址)中表示
on ["[2001:aaa:bbb:cc:dddd:eeee:ffff:gggg]"], in: :parallel do |host|
#some stuff
end
我最终看到的是:
Exception on host 2001:aaa:bbb:cc:dddd:eeee:ffff caught: getaddrinfo: nodename nor servname provided, or not known
请注意尾随字节似乎被截断了?有没有其他方法可以格式化 IPv6 地址字符串?
目前 SSHKit 存在一个错误,我正计划为其提交 PR。除非特别指出,否则基本上尾随字节被吞没为端口号。
### Without port number, it parses incorrectly
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]'
# => #<SSHKit::Host:0x007fc12318d7d8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370", @port=7348>
解决方法是指定端口
### With port number it works
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]:22'
# => #<SSHKit::Host:0x007fc1231e46c8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370:7348", @port=22>
我确定这是我的问题,我从根本上误解了。我正在使用 sshkit
连接并上传一些文件到具有 IPv6 寻址的服务器。
我可以通过 SSH 连接到具有如下地址的服务器:
2001:aaa:bbb:cc:dddd:eeee:ffff:gggg
没有问题,直到我尝试利用 sshkit
来做同样的事情。下面的示例说明了相同的 IPv6 字符串如何在脚本 I am 运行:
on ["[2001:aaa:bbb:cc:dddd:eeee:ffff:gggg]"], in: :parallel do |host|
#some stuff
end
我最终看到的是:
Exception on host 2001:aaa:bbb:cc:dddd:eeee:ffff caught: getaddrinfo: nodename nor servname provided, or not known
请注意尾随字节似乎被截断了?有没有其他方法可以格式化 IPv6 地址字符串?
目前 SSHKit 存在一个错误,我正计划为其提交 PR。除非特别指出,否则基本上尾随字节被吞没为端口号。
### Without port number, it parses incorrectly
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]'
# => #<SSHKit::Host:0x007fc12318d7d8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370", @port=7348>
解决方法是指定端口
### With port number it works
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]:22'
# => #<SSHKit::Host:0x007fc1231e46c8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370:7348", @port=22>