С учетом CIDR, как я могу преобразовать его в маску подсети.конвертировать CIDR в маску подсети в tcl
1
A
ответ
3
Точно так же вы делаете на любом другом языке
set n 24
set mask [expr {~ 0 << (32 - $n)}]
format "%d.%d.%d.%d" [expr {$mask >> 24 & 255}] [expr {$mask >> 16 & 255}] [expr {$mask >> 8 & 255}] [expr {$mask & 255}]
1
Конечно, это легко сделать в простом Tcl, но вы можете рассмотреть возможность использование ip
пакета из Tcllib для IP-адресов преобразований, поскольку она обеспечивает множество функций удобства, которые делают его легко почти все, что вам нужно для IPv4 и IPv6-адресов.
Спасибо. Что на самом деле устанавливает линия маски? – user211491
Создает маску «бит», которая смещается вокруг, действительно работает с данными в виде битовой маски. –
В связи с этим вопросом, как я могу добавить 1 к IP-адресу (пример: 192.168.1.0). У меня есть IP-адрес и маска подсети, и я пытаюсь получить первый действительный IP-адрес в диапазоне. Если я делаю логическое И между IP и подсетью, я получаю номер подсети. Мне нужно добавить 1 к номеру подсети, чтобы получить первый IP-адрес. – user211491