Converting CIDR address to subnet mask and network address

前端 未结 11 729
既然无缘
既然无缘 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:36

    This is how you would do it in Java,

        String[] parts = addr.split("/");
        String ip = parts[0];
        int prefix;
        if (parts.length < 2) {
            prefix = 0;
        } else {
            prefix = Integer.parseInt(parts[1]);
        }
        int mask = 0xffffffff << (32 - prefix);
        System.out.println("Prefix=" + prefix);
        System.out.println("Address=" + ip);
    
        int value = mask;
        byte[] bytes = new byte[]{ 
                (byte)(value >>> 24), (byte)(value >> 16 & 0xff), (byte)(value >> 8 & 0xff), (byte)(value & 0xff) };
    
        InetAddress netAddr = InetAddress.getByAddress(bytes);
        System.out.println("Mask=" + netAddr.getHostAddress());
    

提交回复
热议问题