У меня есть входной файл с адресами IPv4:
94.228.16.0 - 94.228.25.255
94.241.136.0/24
94.241.136.0 - 94.241.136.255
94.29.128.0/17
94.29.128.0 - 94.29.191.0
94.29.192.0 - 94.29.255.0
94.74.181.0/24
94.74.181.0 - 94.74.181.31
94.74.181.128 - 94.74.181.255
Как я могу преобразовать диапазоны адресов в сетевые маски? Результат должен быть:
94.228.16.0/21
94.241.136.0/24
94.241.136.0/24
94.29.128.0/17
94.29.128.0/19
94.29.192.0/19
94.74.181.0/24
94.74.181.0/27
94.74.181.128/25
3
Некоторые результаты, которые вы запрашиваете, неверны, поэтому ни один действительный скрипт bash не выдаст их. Например, первый диапазон не может быть выражен с использованием маски сети: 94.228.16.0/21 дает 94.228.16.0 - 94.228.23.255, а следующий более широкий 94.228.16.0/20 дает 94.228.16.0 - 94.228.31.255. Кроме того, диапазоны, оканчивающиеся на .0, не могут быть созданы любой маской.
—
zwets
@ Занна, ты обманываешь, плакат спросил с помощью bash . Мой Bash не имеет
—
zwets
ipcalc
встроенных. ;-)
@zwets ах я понял это! Но вы правы, оболочка нуждается в большой помощи, хахаха
—
Занна