Linux命令行工具使用networking掩码/ CIDR表示法

我在制定networking子网的过程中非常糟糕。 有一些Linux的命令行工具(Ubuntu的包加),让我把255.255.255.224 ,它会告诉我,是/27

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 

如果你input了一个子网掩码而不是CIDR,你仍然可以在“Network:”之后看到/ ## 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 

我之前使用过ipcalc。 看起来Ubuntu也有sipcalc。 看到这里 。

尝试sipcalc或ipcalc 。

networking掩码支持自动找出一个特定的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 

我使用ipcalc进行networking子网划分,但仅限于IPv4地址。
你可以使用subnetcalc ,它支持IPv4和IPv6。

您可以使用位于此处的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