首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查IP地址(或范围)是否有效

如何检查IP地址(或范围)是否有效
EN

Stack Overflow用户
提问于 2021-07-29 02:20:19
回答 1查看 63关注 0票数 1

我已经运行了几个帖子,使用各种gem检查IP地址是否有效,但似乎没有一个能够确定是否正在使用CIDR格式。

例如:

代码语言:javascript
运行
复制
irb(main):057:0> "192.168.1.1"   =~ Resolv::IPv4::Regex ? true : false #=> true
=> true
irb(main):058:0> "192.168.1.1/30"   =~ Resolv::IPv4::Regex ? true : false #=> true
=> false
irb(main):059:0> 

代码语言:javascript
运行
复制
irb(main):059:0> IPAddress.valid? "192.168.1.1"
=> true
irb(main):060:0> IPAddress.valid? "192.168.1.1/32"
=> false

是我见过的两种最常见的使用方式。如何将CIDR表示法也合并到这些验证检查中?

EN

Stack Overflow用户

发布于 2021-07-29 13:52:38

如果ipaddress gem (https://github.com/ipaddress-gem/ipaddress),则可以使用parse方法。

解析有效地址:

代码语言:javascript
运行
复制
3.0.0 :005 > x = IPAddress.parse "192.168.1.1/32"
 => #<IPAddress::IPv4:0x00007f92d684f010 @address="192.168.1.1", @prefix=32, @octets=[192, 168, 1, 1], @u32=3232235777>

解析无效地址会引发以下问题:

代码语言:javascript
运行
复制
3.0.0 :006 > x = IPAddress.parse "192.168.1.1.1/32"
Traceback (most recent call last):
...
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68565572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档