Ruby:将CIDR转换为网络掩码
给定网络定义,如Ruby:将CIDR转换为网络掩码,ruby,ip-address,subnet,cidr,netmask,Ruby,Ip Address,Subnet,Cidr,Netmask,给定网络定义,如192.168.1.0/24,我想将/24CIDR转换为四位网络掩码,在本例中为255.255.255.0 不应使用额外的gems。Ruby的IPAddr似乎没有公开此功能。但是,它包含一个名为@mask\u addr的私有实例变量,该变量包含所需掩码的整数值 通过将其转换回另一个IPAddr实例,可以将其表示为四位子掩码: 需要“ipaddr” net=IPAddr.new(“192.168.1.0/24”) subnet=IPAddr.new(net.instance\u v
192.168.1.0/24
,我想将/24
CIDR转换为四位网络掩码,在本例中为255.255.255.0
不应使用额外的gems。Ruby的
IPAddr
似乎没有公开此功能。但是,它包含一个名为@mask\u addr
的私有实例变量,该变量包含所需掩码的整数值
通过将其转换回另一个IPAddr
实例,可以将其表示为四位子掩码:
需要“ipaddr”
net=IPAddr.new(“192.168.1.0/24”)
subnet=IPAddr.new(net.instance\u variable\u get(:@mask\u addr),Socket::AF\u INET).to\s
# => "255.255.255.0"
这里的实际方法非常简单:
def掩码(n)
[ ((1 "255.255.0.0"
面具(22)
# => "255.255.252.0"
这里的字符串net
如何有一个实例变量?对于不习惯位移位的人,常量值方法((1