Ruby on rails Rails如何在ip范围计算之前验证子网掩码

Ruby on rails Rails如何在ip范围计算之前验证子网掩码,ruby-on-rails,ruby,ip-address,cidr,Ruby On Rails,Ruby,Ip Address,Cidr,我正在使用NetAddress gem验证网络IP范围。但我无法找到验证给定子网掩码有效的方式 def valid_ip_range(ip, gateway, subnet_mask) ip_range = NetAddr::CIDR.create("#{gateway} #{subnet_mask}") valid_ip_range = NetAddr.range(ip_range.first, ip_range.last) valid_ip_range.incl

我正在使用NetAddress gem验证网络IP范围。但我无法找到验证给定子网掩码有效的方式

  def valid_ip_range(ip, gateway, subnet_mask)
    ip_range = NetAddr::CIDR.create("#{gateway} #{subnet_mask}")

    valid_ip_range = NetAddr.range(ip_range.first, ip_range.last)
    valid_ip_range.include?(ip_ip)
  end
获取有效的子网掩码

ip_range = NetAddr::CIDR.create('192.168.1.1 255.255.255.0')
=> #<NetAddr::CIDRv4:0x0000000b334720 @address_len=32, @all_f=4294967295, @hostmask=255, @ip=3232235777, @netmask=4294967040, @network=3232235776, @tag={}, @version=4, @wildcard_mask=4294967040>
ip_range = NetAddr::CIDR.create('192.168.1.1 255.128.128.0')
ip_range = NetAddr::CIDR.create('192.168.1.1 1.1.1.1')
=> NetAddr::ValidationError: 1.1.1.1 contains '1' bits within the host portion of the netmask.
from /ruby-2.1.1@customerservice-mar/gems/netaddr-1.5.1/lib/validation_shortcuts.rb:182:in `block in validate_netmask_str'