Help:段封禁

From mediawiki.org
This page is a translated version of the page Help:Range blocks and the translation is 84% complete.
Outdated translations are marked like this.
PD 注意:當您編輯本頁面時,即同意以CC0協議授權您的貢獻。您可以在公有領域说明页面找到更多信息。
PD
参见Help:段封鎖/IPv6 以获取有关IPv6段封禁的信息。

封禁功能实际上是通过向一组 IP 地址应用的技术限制, 它可以阻止用户进行编辑、创建新帐户、通过页面发送电子邮件等。 如果你选中Hardblock选项,它则会阻止已注册用户从被封禁IP地址范围内进行编辑。

要想从Special:Block封禁一个IP段,输入段内的第一个IP地址,在末尾加斜线和一个无类别域间路由(CIDR)后缀。 除非你知道你在做什么,否则你应该避免施行段封禁。你可能最终会错误地封禁上万甚至上百万无辜的人!

本文主要讨论IPv4IPv6段封禁工作原理类似,但会产生不同的结果 - 见/IPv6

非技术说明

IP地址被拆分成数的块。 例如148.20.57.0148.20.57.255。 一旦其达到255那么下一数是148.20.58.0

IP地址可以被拆分成更小或更大的块。 最小的作为可用块的数字是4. 他可以是以下之一:

148.20.57.0 - 148.20.57.3,
148.20.57.4 - 148.20.57.7,
148.20.57.8 - 148.20.57.11, ...

每一个块中的4个数,只有两个能被分配到计算机 任何一个块的第一个数和最后一个数都被网络通信所保留。 下面有几种封禁方法,就像是这样:

148.20.57.0/30,
148.20.57.4/30,
148.20.57.8/30, ...

下一个大点的是8。 他们可以如下:

148.20.57.0 - 148.20.57.7,
148.20.57.8 - 148.20.57.15,
148.20.57.16 - 148.20.57.23, ...

在这个块中的8个数中只有6个能被分配到计算机,同样地,一个块的第一个和最后一个数由于网络通信的特殊用途而保留。 它们同样可以表示如下:

148.20.57.0/29,
148.20.57.8/29,
148.20.57.16/29, ...

基于这一点,在一个块里的IP地址的数量持续翻倍:16,32,64,128,256等。

A block of 16 would start 148.20.57.0/28.
A block of 32 would start 148.20.57.0/27.
A block of 64 would start 148.20.57.0/26.
A block of 128 would start 148.20.57.0/25.
A block of 256 would start 148.20.57.0/24.

所以如果你有一个IP地址,你想屏蔽一个以分配的区域那么如何知道哪一个被用了? 假如148.20.57.34出现了问题. 你可以在http://arin.net/whois/?queryinput=148.20.57.34查找谁用的这个IP。 这些话告诉我们IP已经被分配了,同时/17这个范围中的大量其他的IP给了互联网分配及防御中心。 我们当然不希望错误屏蔽大量的互联网分配IP地址中心的IP! 封禁范围当然越小越好! 只屏蔽这群有问题的IP范围。

这是一个十分有用的计算器:

toolforge:ftools/general/ip-range-calc.html

进入这个网页并输入 148.20.57.34 块的起始位. Now select Network Prefix Length and enter 27 (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 148.20.57.34. (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.

技术性解释

无类别域间路由(CIDR)标记法被记成IP/CIDR后缀(例如Pv4 "10.2.3.41/24"或者IPv6 "a3:bc00::/24")。 CIDR后缀是在这个范围内的每一个IP地址以二进制表示时高位数起具有相同数的位的个数

例如: "10.10.1.32" 二进制是00001010.00001010.00000001.00100000,所以 10.10.1.32/27将匹配高位起27个数("00001010.00001010.00000001.00100000")。 IP地址 10.10.1.3210.10.1.63当转换成二进制,所有地址都有相同的27位高位数。如果被屏蔽那么它们都被屏蔽。

如果CIDR后缀增加,块中的IP数会减少(见 table of sample ranges). 相同CIDR后缀的IPv6中的地址数和IPv4中的不同。IPv6的地址数=79,228,162,514,264,337,593,543,950,336倍于IPv4。

计算CIDR后缀

你可以用table of sample ranges以估算范围,用脚本或手动计算这个范围。

二进制转换

第一步手动计算一个范围的首IP和尾IP以二进制表示出来。 (这假定你没使用脚本,总之可以大概计算范围。) 一个IP地址有4组8位二进制数组成。 每一组代表一个从0到255中的数字 转换一个数到二进制,你可以查表或者知道每一个二进制数所代表的值。

二进制位:   1   1   1   1   1   1   1   1
值: 128  64  32  16   8   4   2   1

如果这个数大于等于相应值填1并减掉这个值,(如果不是填0并不要减)从左到右依次进行。 例如,为了计算240:

  1. 240大于等于128,所以填1并减128。
  2. 112 (240-128) 大于等于64,所以填1并减64。
  3. 48 (112-64)大于等于32,所以填1并减32。
  4. 16 (48-32) 大于等于16,所以填1并减16。
  5. 因为剩下的值是0,所以所有剩下的位子是0

因此, 240 表示为 1111 0000。因为其可以被表示为 128+64+32+16+0+0+0+0。

计算IP段

  1. 将IP地址一个接一个排列下去,从开头数有多少位完全相同。 这是无类域间路由后缀
  2. 再次检查 一个数字可能关系到成千上万个地址。

下面举例,计算无类域间路由中的 69.208.0.069.208.0.255之间的范围 注意, 这是一个简单的例子:某些 IP 地址不太适合无类型域间路由后缀, 需要用多个不同大小的数值来缩小范围。

IP位址:
  69.208.0.0
  69.208.0.255
转换为二进制:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
计算第一个值:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
  |____________________________|
            24位
无类别域间路由的范围:
  69.208.0.0/24

IP地址范围表

下表显示了每一个无类域间路由后缀对IPv4地址的影响。 Note that MediaWiki only supports blocking CIDR suffixes 16 - 32 in IPv4 and 19 (formerly 64) - 128 in IPv6 by default (subject to $wgBlockCIDRLimit ). IPv6段表请参见/IPv6

CIDR IP段起点 IP段终点 总IP地址数量 在IP地址中选定的二进制位
69.208.0.0/0 0.0.0.0 255.255.255.255 4,294,967,296 ********.********.********.********
69.208.0.0/1 0.0.0.0 127.255.255.255 2,147,483,648 0*******.********.********.********
69.208.0.0/4 64.0.0.0 79.255.255.255 268,435,456 0100****.********.********.********
69.208.0.0/8 69.0.0.0 69.255.255.255 16,777,216 01000101.********.********.********
69.208.0.0/11 69.192.0.0 69.223.255.255 2,097,152 01000101.110*****.********.********
69.208.0.0/12 69.208.0.0 69.223.255.255 1,048,576 01000101.1101****.********.********
69.208.0.0/13 69.208.0.0 69.215.255.255 524,288 01000101.11010***.********.********
69.208.0.0/14 69.208.0.0 69.211.255.255 262,144 01000101.110100**.********.********
69.208.0.0/15 69.208.0.0 69.209.255.255 131,072 01000101.1101000*.********.********
69.208.0.0/16 69.208.0.0 69.208.255.255 65,536 01000101.11010000.********.********
69.208.0.0/17 69.208.0.0 69.208.127.255 32,768 01000101.11010000.0*******.********
69.208.0.0/18 69.208.0.0 69.208.63.255 16,384 01000101.11010000.00******.********
69.208.0.0/19 69.208.0.0 69.208.31.255 8,192 01000101.11010000.000*****.********
69.208.0.0/20 69.208.0.0 69.208.15.255 4,096 01000101.11010000.0000****.********
69.208.0.0/21 69.208.0.0 69.208.7.255 2,048 01000101.11010000.00000***.********
69.208.0.0/22 69.208.0.0 69.208.3.255 1,024 01000101.11010000.000000**.********
69.208.0.0/23 69.208.0.0 69.208.1.255 512 01000101.11010000.0000000*.********
69.208.0.0/24 69.208.0.0 69.208.0.255 256 01000101.11010000.00000000.********
69.208.0.0/25 69.208.0.0 69.208.0.127 128 01000101.11010000.00000000.0*******
69.208.0.0/26 69.208.0.0 69.208.0.63 64 01000101.11010000.00000000.00******
69.208.0.0/27 69.208.0.0 69.208.0.31 32 01000101.11010000.00000000.000*****
69.208.0.0/28 69.208.0.0 69.208.0.15 16 01000101.11010000.00000000.0000****
69.208.0.0/29 69.208.0.0 69.208.0.7 8 01000101.11010000.00000000.00000***
69.208.0.0/30 69.208.0.0 69.208.0.3 4 01000101.11010000.00000000.000000**
69.208.0.0/31 69.208.0.0 69.208.0.1 2 01000101.11010000.00000000.0000000*
69.208.0.0/32 69.208.0.0 69.208.0.0 1 01000101.11010000.00000000.00000000

默认限制

MediaWiki默认限制IPv4段封禁子网掩码不能超过/16(65536个IP地址)。 To block larger ranges $wgBlockCIDRLimit needs to be set accordingly in LocalSettings.php .

参考资料

外部链接

  • Subnet Calculator can help calculate prefix length and subnet mask for IPv4 and IPv6.