我只是尝试使用Ruby的IPAddr类,并且我一直想知道是否可以使用网络掩码创建新的IPAddr。为了澄清我的问题,这就是我所做的:
IPAddr.new "192.186.2.253/24"
=> #<IPAddr: IPv4:192.186.2.0/255.255.255.0>
我期望得到这个:
#<IPAddr: IPv4:192.186.2.253/255.255.255.0>
如果我使用to_range
方法,则ip地址与第二个示例匹配。
我这堂课有什么问题吗?如何在不切断主机ID的情况下初始化此类IP地址。
非常感谢
答案 0 :(得分:1)
当提供网络掩码时,地址被视为网络地址,而不是主机地址,至少是我如何将您的发现与the docs结合起来:
如果指定了prefixlen或mask,则返回屏蔽的IP地址。
我假设,通过&#34;屏蔽的IP地址&#34;,作者意味着一个网络地址,至少考虑到您观察到的行为和description of the IPAddr#to_range
method,这是最有意义的。