Sha256: caf71709a788f55b9c088c1a3845bd1d355b97260bcb2ff709999c7bf6fdaa08

Contents?: true

Size: 599 Bytes

Versions: 18

Compression:

Stored size: 599 Bytes

Contents

module Aio::Base::Toolkit::IPAddr
	class << self

		# 子网掩码从点分十进制转换为数值
		# 255.255.255.0 => 24
		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

		# 子网掩码从十进制到点分十进制
		# 24 => 255.255.255.0
		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
	end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
aio_elin-1.1.8 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.7 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.4 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.3 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.2 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.1 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.1.0 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.9 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.8 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.7 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.6 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.5 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.4 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.3 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.2 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.1 lib/aio/base/toolkit/ipaddr.rb
aio_elin-1.0.0 lib/aio/base/toolkit/ipaddr.rb
aio_elin-0.0.1 lib/aio/base/toolkit/ipaddr.rb