2

のようなネットワーク定義が与えられた場合、 CIDR を 4 桁のネットマスク (この場合は )192.168.1.0/24に変換したいと思います。/24255.255.255.0

余分な宝石は使用しないでください。

4

2 に答える 2

0

RubyIPAddrはこの機能を公開していないようです。@mask_addrただし、目的のマスクの整数値を含むと呼ばれるプライベート インスタンス変数が含まれています。

IPAddr別のインスタンスに変換し直すことで、4 桁のサブマスクとして表すことができます。

require "ipaddr"

net = IPAddr.new("192.168.1.0/24")
subnet = IPAddr.new(net.instance_variable_get(:@mask_addr), Socket::AF_INET).to_s
# => "255.255.255.0"
于 2021-03-03T14:38:25.823 に答える