Ruby IPAddr类接受错误的IPv6地址字符串。

huangapple go评论124阅读模式
英文:

Ruby IPAddr class accepting wrong IPv6 address string

问题

我们正在升级 Ruby 版本,从 v2.7.3 到 v3.1.3。

我们的一个测试用例与有效的 IPv6 地址字符串有关,检查以下内容:

# Ruby 2.7.3
IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> IPAddr::InvalidAddressError(无效地址:fe80::85e:7530:69ec:9074%en0)

# Ruby 3.1.3

IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> true

这真的是一个错误吗,还是我漏掉了什么?请帮忙。

英文:

We are middle of upgrading ruby versions v2.7.3 -> v3.1.3

One of our test cases are failing related to valid ipv6 address string, check the following

# ruby 2.7.3
IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> IPAddr::InvalidAddressError (invalid address: fe80::85e:7530:69ec:9074%en0)

# ruby 3.1.3

IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> true

Is it really a bug or am I missing something? Please help..

答案1

得分: 1

这曾经是一个问题,直到版本1.2.2,这是一个问题,在默认 gem ipaddr 中,这个问题在版本1.2.3已经修复,以便完全符合RFC 4007RFC 6874的要求。 ipaddr 默认 gem 的版本1.2.3已作为Ruby 3.1.0的一部分发布。

所以,你是正确的。这是一个bug(尽管有不同的意见),已在ipaddr 1.2.3 / Ruby 3.1.0中修复。

英文:

> Is it really a bug or am I missing something?

This used to be an issue in the ipaddr default gem up to version 1.2.2 which was fixed in version 1.2.3 in order to be fully compliant with RFC 4007 and RFC 6874. Version 1.2.3 of the ipaddr default gem was shipped as part of Ruby 3.1.0.

So, you are correct. This is a bug (although opinions differ on that) which was fixed in ipaddr 1.2.3 / Ruby 3.1.0.

huangapple
  • 本文由 发表于 2023年6月1日 18:03:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/76380777.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定