Help:Range blocks/vi


 * Xem /IPv6 để biết cách cấm dãy IPv6.

Cấm dãy IP là phương thức hạn chế được áp dụng thông qua hình thức Special:Block một nhóm địa chỉ IP để ngăn cản họ sửa đổi, tại tài khoản mới, gởi điện thư qua giao diện wiki, vân vân. Khi bạn đánh dấu lựa chọn "", người dùng đăng nhập từ các thiết bị có địa chỉ IP thuộc dãy chỉ định cũng không thể thực hiện các sửa đổi.

Cấm dãy IP khả dụng trên mọi dự án wiki thuộc Quỹ Wikimedia; nếu bạn thấy nó không hoạt động trên phiên bản wiki nào đó, hãy thêm " " vào  (có hiệu lực vĩnh viễn trên MediaWiki phiên bản 1.18.0 trở lên).

Để cấm một dãy IP từ Special:Block, nhập địa chỉ IP đầu tiên của dãy, kế đến là dấu forward slash (/) và cuối cùng là một hậu tố Classless inter-domain routing (CIDR). Cẩn thận: Chỉ nên thực hiện cấm dãy IP khi bạn thực sự hiểu rõ bạn sắp sửa làm gì, bởi hành động của bạn có thể khiến hàng chục hàng hay thậm chí hàng triệu người vô can bị cấm biên tập!

Bài viết này chủ yếu nói về cấm dãy IPv4; cấm dãy IPv6 cũng được thực hiện tương tự, nhưng cũng có chút khác biệt - xem /IPv6.

Giải thích phi-kỹ thuật
IP addresses are broken up into blocks of numbers. An example of this would be  through to. Once it reaches  the next number is.

IP addresses can be broken up in to smaller or larger blocks. The smallest practical block is a block of 4. This could be one of the following:



Of each block of 4 numbers, only two can be assigned to a computer. The first and last numbers of any block are reserved for network communication. These are level 30 blocks and can be expressed like this:



The next largest block is 8. They can be as follows:



In this block of 8 numbers only 6 can be assigned to a computer as, once again, the first and last numbers in a block are reserved for specific uses in network communication. These can also be expressed as follows:



From this point on, the number of IP addresses in a block continues to double: 16, 32, 64, 128, 256, etc.


 * A block of 16 would start.
 * A block of 32 would start.
 * A block of 64 would start.
 * A block of 128 would start.
 * A block of 256 would start.

So if you have an IP address and you want to block the range assigned how do you know which one to use? Let's say you have a problem with. You can lookup who has this IP address at http://arin.net/whois/?queryinput=148.20.57.34. Say this tells us that this IP address is assigned, along with a LOT of others in a  range, to the Department of Defense. We certainly don't want to block a large block of the DoD! The rule of thumb is block as little as possible. Only block a range if there is a cluster of IP addresses giving a problem.

There's a calculator that is very useful for this:
 * http://www.csgnetwork.com/ipinfocalc.html

Go to this site and enter  into the first set of blanks. Now select Network Prefix Length and enter  (this will give a block of 32 addresses) and click Calculate Network Information. This will show us a block of 32 IP addresses that include. (The first - network - and the last - broadcast - addresses will be displayed along with the usable addresses in the range.) You can use this tool to test ranges to be sure they are what you want before entering the information to initiate the block.

Technical explanation
CIDR notation is written as the IP address, a slash, and the CIDR suffix (for example, the IPv4 " " or IPv6 " "). The CIDR suffix is the number of starting digits every IP address in the range have in common when written in binary.

For example: " " is binary " ", so  will match the first 27 digits (" "). The IP addresses –, when converted to binary, all have the same 27 first digits and will be blocked if   is blocked.

As the CIDR suffix increases, the block affects fewer IP addresses (see table of sample ranges). CIDR suffixes are not the same for IPv4 addresses as they are for IPv6 addresses; the same CIDR suffix in IPv4 blocks $$2^{96}$$=79,228,162,514,264,337,593,543,950,336 times as many addresses in IPv6.

Calculating the CIDR suffix
You can use the table of sample ranges below to guess the range, use a computer script, or manually calculate the range.

Conversion to binary
The first step in manually calculating a range is to convert the first and last IP address to binary representation. (This assumes you're not using a computer script, which can probably calculate the range for you anyway.) An IP address is composed of four groups of eight ones and zeros. Each group represents a number from 0 to 255. To convert a number to binary, you can use a reference table or know the value of each binary digit:

Proceeding from left to right, fill in  if the number is at least that value, and subtract that value (if it's not, fill in   and don't subtract). For example, to calculate 240:


 * 1) 240 is at least 128, so place   and subtract 128.
 * 2) 112 (240-128) is at least 64, so place   and subtract 64.
 * 3) 48 (112-64) is at least 32, so place   and subtract 32.
 * 4) 16 (48-32) is at least 16, so place   and subtract 16.
 * 5) Since the remaining value is zero, all the remaining places are.

Thus, 240 is  because it can be represented as 128+64+32+16+0+0+0+0.

Calculate range

 * 1) Place both IP addresses one atop the other, and count how many starting digits are exactly alike. This is the CIDR suffix.
 * 2) Double-check! Being off by one digit could extend your block by thousands of addresses.

The example below calculates the CIDR range between  and. Note that this is a simple example; some groups of IP addresses do not so neatly fit CIDR suffixes, and need multiple different-sized blocks to block the exact range.


 * IP addresses:


 * Convert to binary:


 * Count identical first numbers:


 * CIDR range:

Table of sample ranges
The table below shows the IPv4 blocks each CIDR suffix affects. Note that MediaWiki only supports blocking CIDR suffixes 16 - 32 in IPv4 and 19 (formerly 64) - 128 in IPv6 by default (subject to ). See /IPv6 for an IPv6 range table.

Default limitation
The default MediaWiki installation limits range blocks to no larger than /16 IPv4 rangeblocks (65,536 addresses). To block larger ranges needs to be set accordingly in.