Công Cụ Nhanh

Chuyển đổi dải IP sang CIDR, gộp danh sách CIDR, kiểm tra IP

Việc cần làm
Nhập IP đầu và IP cuối để có danh sách khối CIDR ít nhất bao trọn dải.

Xử lý ngay trên trình duyệt của bạn. Tệp và dữ liệu không được tải lên máy chủ.

Trả lời nhanh

Nhập IP đầu và IP cuối (ví dụ 192.168.1.10 – 192.168.1.20): công cụ trả về số khối CIDR ít nhất bao trọn đúng dải đó (192.168.1.10/31, 192.168.1.12/30, 192.168.1.16/30, 192.168.1.20/32). Chế độ “Gộp danh sách” bỏ trùng và nối các khối liền kề; “Kiểm tra IP” cho biết một IP thuộc dòng nào trong danh sách. Hỗ trợ cả IPv4 và IPv6.

CIDR là gì?

Tường lửa, nginx, Cloudflare, AWS Security Group hay .htaccess đều chỉ nhận địa chỉ dạng CIDR, trong khi nhà mạng, đối tác hay bảng tính thường đưa bạn dải “từ IP này đến IP kia”. Công cụ đổi dải bất kỳ thành danh sách CIDR tối thiểu theo RFC 4632, gộp danh sách cho phép / chặn dài thành ít dòng nhất, và tra nhanh một IP có nằm trong danh sách hay không. Mọi tính toán chạy trong trình duyệt, kể cả khối IPv6 lớn.

Minh hoạ một cây thước dài được chia thành bốn đoạn dài ngắn khác nhau bằng vạch màu cam, mỗi đoạn treo một thẻ nhãn

Cách dùng

  1. 1

    Chọn việc cần làm: “Dải → CIDR”, “Gộp danh sách” hoặc “Kiểm tra IP”.

  2. 2

    Dải → CIDR: nhập IP đầu và IP cuối (cùng IPv4 hoặc cùng IPv6, nhập ngược thứ tự cũng được) để nhận danh sách khối CIDR.

  3. 3

    Gộp danh sách: dán mỗi dòng một CIDR, một IP hoặc một dải “a - b”; dòng bắt đầu bằng # là chú thích. Công cụ bỏ trùng, nối khối liền kề và báo dòng không đọc được.

  4. 4

    Kiểm tra IP: nhập một IP và dán danh sách, công cụ chỉ ra những dòng chứa IP đó (tiện khi tìm quy tắc tường lửa nào đang khớp).

  5. 5

    Bấm “Sao chép danh sách CIDR” để dán vào cấu hình.

Kích thước khối IPv4 theo prefix

PrefixSố địa chỉMặt nạ mạng
/321255.255.255.255
/304255.255.255.252
/298255.255.255.248
/2816255.255.255.240
/2732255.255.255.224
/2664255.255.255.192
/24256255.255.255.0
/221.024255.255.252.0
/1665.536255.255.0.0
/816.777.216255.0.0.0

Một khối CIDR luôn có kích thước là lũy thừa của 2 và phải bắt đầu ở địa chỉ chia hết cho kích thước đó; vì vậy một dải tùy ý thường cần nhiều khối.

Định dạng danh sách ở một số hệ thống

Hệ thốngCách viết một dòngGhi chú
nginxallow 203.0.113.0/24;Kết thúc bằng deny all; khi chỉ cho phép danh sách
Apache 2.4 (.htaccess)Require ip 203.0.113.0/24Nhiều khối cách nhau bằng dấu cách
iptables-s 203.0.113.0/24Danh sách dài nên dùng ipset
Cloudflare, AWS, GCP203.0.113.0/24Mỗi khối một mục, có giới hạn số mục

Ví dụ thực tế

Đối tác đưa dải IP lẻ

Ngân hàng yêu cầu cho phép 203.0.113.10 – 203.0.113.40. Công cụ trả về 5 khối: .10/31, .12/30, .16/28, .32/29, .40/32; dán lần lượt vào tường lửa là đủ, không mở thừa IP nào.

Rút gọn danh sách cho phép

Danh sách có 10.0.0.0/25, 10.0.0.128/25 và 10.0.1.0/24: gộp lại còn đúng một dòng 10.0.0.0/23.

Tìm quy tắc đang chặn khách

Khách báo không vào được web từ 198.51.100.77. Dán danh sách chặn và IP đó vào “Kiểm tra IP” để biết dòng 198.51.100.0/24 đang khớp.

Gộp danh sách IPv6

2001:db8::/33 và 2001:db8:8000::/33 gộp thành 2001:db8::/32; IPv4 và IPv6 được tách thành hai bảng riêng.

Lỗi thường gặp

Viết 192.168.1.10/28 để bao 192.168.1.10 – 192.168.1.20.
Một /28 chỉ có thể bắt đầu ở .0, .16, .32…; 192.168.1.10/28 thật ra là 192.168.1.0 – .15. Dùng chế độ Dải → CIDR để có danh sách đúng.
Dùng một khối lớn cho gọn và mở thừa IP.
Thay vì /24 cho cả dải 0–255, chỉ nên cho phép đúng các khối công cụ trả về, nhất là khi đó là danh sách cho phép truy cập quản trị.
Báo IP đầu và cuối khác loại.
Một dải chỉ có thể là IPv4 hoặc IPv6; muốn cho phép cả hai, nhập hai dải riêng.
Một số dòng bị bỏ qua khi gộp.
Công cụ liệt kê số dòng không đọc được; thường do thiếu số, prefix quá 32 (IPv4) / 128 (IPv6) hoặc gõ nhầm ký tự.

Thuật toán tìm số khối CIDR ít nhất

Bắt đầu từ IP đầu, công cụ chọn khối lớn nhất vừa bắt đầu đúng tại địa chỉ đó (căn theo lũy thừa của 2) vừa không vượt quá IP cuối, rồi lặp lại với địa chỉ ngay sau khối. Cách tham lam này cho số khối ít nhất có thể, và kết quả luôn bao đúng dải, không thừa, không thiếu một địa chỉ nào.

Khi gộp danh sách, các mục được sắp xếp, nối những dải chồng lấn hoặc liền kề, rồi đổi từng dải đã nối sang CIDR theo cùng thuật toán.

Thuật ngữ

CIDR
Classless Inter-Domain Routing (RFC 4632): cách viết khối địa chỉ “địa chỉ/prefix”, ví dụ 10.0.0.0/8.
Prefix
Số bit đầu cố định; prefix càng nhỏ, khối càng lớn.
Gộp (aggregation)
Nối các khối liền kề thành khối lớn hơn để danh sách ngắn lại.
Danh sách cho phép
Danh sách IP được phép truy cập (allowlist), mọi IP khác bị chặn.

Câu hỏi thường gặp

Vì sao một dải lại thành nhiều khối CIDR?

Khối CIDR phải có kích thước lũy thừa của 2 và bắt đầu ở địa chỉ chia hết cho kích thước. Dải bắt đầu hoặc kết thúc “lẻ” (ví dụ .10 – .20) phải ghép từ nhiều khối nhỏ.

Kết quả có bao thừa IP nào không?

Không. Tổng số địa chỉ của các khối bằng đúng số địa chỉ trong dải, hiện ở dòng tóm tắt phía trên bảng.

Có làm được với IPv6 không?

Có, cả ba chế độ. Công cụ dùng số nguyên lớn nên chính xác với mọi khối IPv6.

Danh sách nhập theo định dạng nào?

Mỗi dòng (hoặc cách nhau bằng dấu phẩy) một CIDR, một IP đơn hoặc một dải “IP đầu - IP cuối”. Dòng bắt đầu bằng # được bỏ qua.

Danh sách của tôi có bị gửi đi đâu không?

Không. Mọi phép tính chạy trên trình duyệt của bạn.

Muốn xem chi tiết một khối (mặt nạ, broadcast) thì sao?

Dùng Tính Subnet IPv4 hoặc Tính Subnet IPv6, nhập khối CIDR công cụ này trả về.

Đánh giá và bình luận

Đang tải…