Разберитесь с маской подсети

Мне нужно написать программу, которая узнает маску подсети. У меня есть два входа, первый - индикатор класса (A, B, C). Второй - это число, которое показывает количество подсетей. Результатом является маска подсети.

Например :

Маска подсети 4
: 255.192.0.0

Без IP-адреса я не знаю, как это сделать. Я ценю ответы, спасибо.


person hnrc.akos    schedule 05.11.2019    source источник
comment
Вам определенно не нужен IP-адрес. Класс дает вам начальный размер (/8/16/24), а количество подсетей делит его дальше.   -  person Steve Friedl    schedule 05.11.2019
comment
Вы можете показать нам, как вы пытались это сделать?   -  person Horacio    schedule 05.11.2019
comment
Я еще не начал, потому что проблема уже настигла меня :/   -  person hnrc.akos    schedule 05.11.2019


Ответы (1)


Я могу объяснить вам, что я понял: для индикатора класса:

A -> 255.X.X.X
B -> 255.255.X.X
C -> 255.255.255.X

Количество подсетей будет определять, что такое «X».

В вашем примере вам нужно 4 подсети; поэтому, если вы рассматриваете второй сегмент, вы получаете двоичный код для каждой подсети:

00YY YYYY
01YY YYYY
10YY YYYY
11YY YYYY

Это означает, что маска (все еще в двоичном формате): 1111 1111.1100 0000.0000 0000.0000 0000 (вы получаете свой 255.192.0.0)

person Jona    schedule 05.11.2019