Например, в этом IP-адресе: 145.32.59.24
формат слеша должен быть /16 в ответе.
Но я понятия не имею, как это определить.
Я понимаю, что это IP-адрес класса B.
Пожалуйста, помогите мне.. Я так старался понять это.
Например, в этом IP-адресе: 145.32.59.24
формат слеша должен быть /16 в ответе.
Но я понятия не имею, как это определить.
Я понимаю, что это IP-адрес класса B.
Пожалуйста, помогите мне.. Я так старался понять это.
С тех пор как в 1993 году была введена бесклассовая маршрутизация в домене (CIDR), "классы" сети / хоста ABC стали все менее и менее полезными и им следовали. Не существует надежного способа определения разделения IPv4-адреса на его сеть и компоненты хоста по одному адресу. Формат / n для указания маски сети предполагает непрерывную маску из такого количества битов, причем самый правый остаток является частью хоста.
Таким образом, старый класс A будет выражаться как /8, B как /16, а C как /24. Однако с помощью CIDR вы не ограничены этими разделами, но можете произвольно разделить 32-битный адрес. Вам нужна сетевая маска, чтобы определить правильное значение /n. И наоборот, учитывая /n, можно определить маску сети. Например, /16 будет иметь маску 255.255.0.0.
Это называется «маска сети»; не «формат слеша». Во всяком случае, вы можете назвать это «нотация CIDR». Формат вообще не имеет значения. Это вернет маску сети в формате dot-notation
:
#!/bin/sh
ifconfig "$1" | sed -rn '2s/ .*:(.*)$/\1/p'
Просто назовите это как: script.sh eth0
. Если вы хотите, вы можете проанализировать это, чтобы создать нотацию CIDR, или вы можете попытаться проанализировать ее по выводу ip addr
который уже отображается в нотации CIDR. Я не имею этот код под рукой, хотя.
Возможно, вы заметили, что ни одно из этих решений на самом деле не берет IP-адрес и не выдает сетевую маску. Сделать это невозможно. Причина, по которой мы должны указать маску сети при настройке нашего IP-адреса, заключается в том, что он не может автоматически определяться IP-адресом. Маска сети - это фильтр, который применяется к IP-адресу. Он содержит информацию, не присущую IP-адресу. Оба эти решения на самом деле просто возвращают маску сети, используемую для настройки интерфейса.