Module: Aio::Base::Toolkit::IPAddr
- Defined in:
- lib/aio/base/toolkit/ipaddr.rb
Class Method Summary collapse
-
.mask_dotted_to_i(mask) ⇒ Object
子网掩码从点分十进制转换为数值 255.255.255.0 => 24.
-
.mask_i_to_dotted(int) ⇒ Object
子网掩码从十进制到点分十进制 24 => 255.255.255.0.
Class Method Details
.mask_dotted_to_i(mask) ⇒ Object
子网掩码从点分十进制转换为数值255.255.255.0 => 24
6 7 8 9 10 11 12 13 |
# File 'lib/aio/base/toolkit/ipaddr.rb', line 6 def mask_dotted_to_i(mask) arr = mask.split(".") binary = "" arr.each do |m| binary << m.to_i.to_s(2) end return binary.scan(/1/).size end |
.mask_i_to_dotted(int) ⇒ Object
子网掩码从十进制到点分十进制24 => 255.255.255.0
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/aio/base/toolkit/ipaddr.rb', line 17 def mask_i_to_dotted(int) int = int.to_i arr = [nil, nil, nil, nil] binary = (2 ** int - 1) << (32 - int) 4.times do |t| arr[3-t] = (binary & 255).to_s binary = binary >> 8 end return arr.join(".") end |