Method: Rex::Socket.bit2netmask
- Defined in:
- lib/rex/socket.rb
.bit2netmask(bitmask, ipv6 = false) ⇒ Object
Converts a bitmask (28) into a netmask (255.255.255.240)
492 493 494 495 496 497 498 499 500 |
# File 'lib/rex/socket.rb', line 492 def self.bit2netmask(bitmask, ipv6=false) if bitmask > 32 or ipv6 i = ((~((2 ** (128 - bitmask)) - 1)) & (2**128-1)) n = Rex::Socket.addr_iton(i, true) return Rex::Socket.addr_ntoa(n) else [ (~((2 ** (32 - bitmask)) - 1)) & 0xffffffff ].pack('N').unpack('CCCC').join('.') end end |