Công cụ dòng lệnh Linux để làm việc với ký hiệu netmasks / CIDR [đã đóng]


18

Tôi thật kinh khủng khi làm việc ra mạng con trong đầu. Có một số công cụ dòng lệnh cho linux (gói ubfox cộng), cho phép tôi đặt vào 255.255.255.224và nó sẽ cho tôi biết đó là một /27?

Câu trả lời:


36

ipcalc có thể làm điều này, ví dụ:

[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

nếu bạn đã nhập mặt nạ mạng con thay vì CIDR, bạn vẫn sẽ thấy số / ## CIDR sau 'Mạng:', vì vậy nó đi cả hai chiều.

hoặc với 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

Các gói Ubuntu là ipcalc và sipcalc:

sudo apt-get install ipcalc
sudo apt-get install sipcalc

2
Sản lượng thú vị. Tiện ích ipcalc trên Fedora (người viết bởi Redhat) còn nhiều hơn thế.
fpmurphy

cũng whatmask cho fedora
sivann

4

netmask hỗ trợ tự động tìm ra các tập hợp con tối thiểu cho một dải IP cụ thể mà tôi thấy là tiện dụng. Ví dụ:

# 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



2

Bạn có thể sử dụng các tập lệnh bash nằm ở đây để chuyển đổi từ cidr sang mask và mask thành ký hiệu cidr:

Đây là bản sao của các tập lệnh, để đảm bảo câu trả lời luôn có sẵn ở đây:

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}
}

vì vậy, ví dụ, chạy:

mask2cdr 255.255.255.255 trả lại 32


1

Tôi sử dụng ipcalc cho mạng con, nhưng nó giới hạn ở các địa chỉ IPv4.
bạn có thể sử dụng subnetcalc , nó hỗ trợ cả IPv4 và IPv6.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.