Преобразование адреса CIDR в маску подсети и сетевой адрес - PullRequest
34 голосов
/ 31 мая 2010

Учитывая адрес CIDR, например, 192.168.10.0/24

  • Как определить длину маски? (24)
  • Как определить адрес маски? (255.255.255.0)
  • Как определить сетевой адрес? (192.168.10.0)

Ответы [ 11 ]

0 голосов
/ 11 мая 2015

Java-класс Apache SubnetUtils предлагает помощь для выполнения некоторых из этих задач:

String[] parts = ipv4Cidr.split("/");
if (parts[1].equals("0"))
{
    // This accepts all ip addresses.  Technically not a subnet.
    maskLength = 0;
    maskAdress = "0.0.0.0"
}
else
{
     maskLength = Integer.parseInt(parts[1]);
     cidrInfo = new SubnetUtils(ipv4Cidr).getInfo();
     maskAdress = cidrInfo.asInteger(cidrInfo.getNetmask());
     networkAddress = cidrInfo.getNetworkAddress()
}
...