Converting CIDR address to subnet mask and network address

前端 未结 11 735
既然无缘
既然无缘 2020-11-29 01:32

Given a CIDR address, e.g. 192.168.10.0/24

  • How to determine mask length? (24)
  • How to determine mask address? (255.255.
11条回答
  •  天涯浪人
    2020-11-29 01:47

    Here is a simple Groovy example

    def cidrAddress = '192.168.10.0/24'
    def cidrAddressList = cidrAddress.tokenize("\\/")
    def baseIPAddress = cidrAddressList.first()
    def cidrIPMask = cidrAddressList.last().toInteger()
    def netMaskList = []
    Integer fullOctets = cidrIPMask.intdiv(8)
    fullOctets.times {netMaskList.add('255')}
    def remainder = cidrIPMask % 8
    netMaskList.add((256 - (2 ** (8 - remainder))).toString())
    netMaskList.addAll(['0','0','0','0'])
    def netMask = netMaskList.flatten().getAt(0..3).join('.')
    return [cidrAddress,baseIPAddress,cidrIPMask,netMask]
    

提交回复
热议问题