英文:
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 4007和RFC 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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论