Инструмент командной строки Linux для работы с масками сети / нотацией CIDR [закрыто]

Я ужасно умею разрабатывать сетевые подсети в своей голове . Есть ли какой-нибудь инструмент командной строки для linux (пакеты ubuntu плюс), который позволяет мне вставить 255.255.255.224 , и он скажет мне, что это / 27 ?

18
задан 17 August 2009 в 15:58
6 ответов

ipcalc может сделать это, например:

[kbrandt@kbrandt-opadmin: ~] ipcalc 192.168.1.1/24                 
Address:   192.168.1.1          11000000.10101000.00000001. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.1.0/24       11000000.10101000.00000001. 00000000
HostMin:   192.168.1.1          11000000.10101000.00000001. 00000001
HostMax:   192.168.1.254        11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255        11000000.10101000.00000001. 11111111
Hosts/Net: 254                   Class C, Private Internet

при вводе маски подсети вместо CIDR Вы будете все еще видеть/## число CIDR после 'Сети': таким образом, это идет обоими путями.

или с sipcalc:

[kbrandt@kbrandt-opadmin: ~] sipcalc 192.168.1.1/24                                                                                             <23403@8:55>
-[ipv4 : 192.168.1.1/24] - 0
[CIDR]
Host address        - 192.168.1.1
Host address (decimal)  - 3232235777
Host address (hex)  - C0A80101
Network address     - 192.168.1.0
Network mask        - 255.255.255.0
Network mask (bits) - 24
Network mask (hex)  - FFFFFF00
Broadcast address   - 192.168.1.255
Cisco wildcard      - 0.0.0.255
Addresses in network    - 256
Network range       - 192.168.1.0 - 192.168.1.255
Usable range        - 192.168.1.1 - 192.168.1.254

Пакеты Ubuntu являются ipcalc и sipcalc:

sudo apt-get install ipcalc
sudo apt-get install sipcalc
36
ответ дан 2 December 2019 в 20:20
  • 1
    Интересный вывод. ipcalc утилита на Fedora (устройство записи Redhat) является намного более хромой. –  fpmurphy 17 August 2009 в 22:27

Я использовал ipcalc прежде для этого. Похоже, что Ubuntu также имеет sipcalc. Посмотрите здесь.

3
ответ дан 2 December 2019 в 20:20

Попробуйте или sipcalc или ipcalc.

2
ответ дан 2 December 2019 в 20:20

Я использую ipcalc для сетевого разделения на подсети, но это ограничено адресами IPv4.
можно использовать subnetcalc, он поддерживает оба из IPv4 и IPv6.

1
ответ дан 2 December 2019 в 20:20

маска подсети поддерживает автоматическое определение минимальные наборы подсетей для определенного диапазона IP-адресов, что, на мой взгляд, очень удобно. Например:

# netmask -c 10.32.0.0:10.255.255.255
      10.32.0.0/11
      10.64.0.0/10
     10.128.0.0/9
4
ответ дан 2 December 2019 в 20:20

Вы можете использовать bash скрипты, расположенные здесь для преобразования из cidr в маску и маску в cidr нотацию:

Вот копия того, что собой представляют скрипты, чтобы ответ был всегда доступен здесь:

mask2cdr ()
{
   # Assumes there's no "255." after a non-255 byte in the mask
   local x=${1##*255.}
   set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*}
   x=${1%%$3*}
   echo $(( $2 + (${#x}/4) ))
}


cdr2mask ()
{
   # Number of args to shift, 255..255, first non-255 byte, zeroes
   set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
   [ $1 -gt 1 ] && shift $1 || shift
   echo ${1-0}.${2-0}.${3-0}.${4-0}
}

так что, например, запустим:

mask2cdr 255. 255.255.255 возвращает 32

2
ответ дан 2 December 2019 в 20:20

Теги

Похожие вопросы