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

段封禁是通過Special:Block到一個群组的IP地址的技术限制, 以阻止它們进行编辑、创建新帐户、通过wiki介面发送电子邮件等。 若是你选了「封禁使用该IP地址登录的用户」选项,那些从被封禁IP地址范围內連接的已注册用户会被阻止进行编辑。

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

本文主要是讨论IPv4;而IPv6的段封禁工作原理也是类似,但牽涉的層面不同 - 請见/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个,其中只有两个能被分配到计算机。 任何一个區块的第一个和最后一个都保留給网络通信。 下面有几种等級30(30 bit)的區塊,就像是这样:

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,等等。

16的區塊将从148.20.57.0/28开始。
32的區塊将从148.20.57.0/27开始。
64的區塊将从148.20.57.0/26开始。
128的區塊将从148.20.57.0/25开始。
256的區塊将从148.20.57.0/24开始。

所以如果你有一个IP地址,你想屏蔽一个以分配的区域那么如何知道哪一个被用了? 假如148.20.57.34出现了问题. 你可以在http://arin.net/whois/?queryinput=148.20.57.34查找谁用的这个IP。 就假設它會告訴我們,說這個IP已经被分配了國防部,同时還有其他的LOT网络的用户都在/17这个范围內。 我们当然不希望屏蔽國防部的大量區塊! 經驗法則告訴我們,封禁的區塊越小越好! 只有當一群IP地址都有問題時,才去封禁某個范围的IP。

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

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

进入这个网页并输入148.20.57.34進到區块的起始位. 然後选择「网络前缀长度」并输入27(这将提供一个包含32个地址的區块),然后单击「计算网络信息」。 这将會給我们一个包含148.20.57.34在內的32个IP地址的封禁。 (第一個網路地址和最後一個廣播地址、以及範圍內的可用地址都會顯示出來。) 在您输入信息启动區块之前,您可以使用该工具测试范围,以确保它们是您想要的。

技術說明

无类别域间路由(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转换成二进制時,所有與10.10.1.32/27有相同的27個起始数的地址被會被屏蔽。

隨著CIDR后缀的增加,區块中的IP数会减少(參见 IP位址範圍表). CIDR后缀用於IPv6中的地址中與用於IPv4中不同。相同CIDR后缀所屏蔽的IPv6地址数 296=79,228,162,514,264,337,593,543,950,336倍于IPv4。

计算CIDR后缀

你可以用下面的IP位址範圍表以估算范围,或是使用脚本、或是手动计算范围。

二进制转换

手动计算一个范围的第一步是转换首IP和尾IP成為二进制。 (这假定你没有正在使用PC的脚本,反正它可以幫你计算范围就對了。) 一个IP地址由4组的8個0與1二进制数所组成。 每一组代表从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地址的一个覆蓋上另一个,然後从开头数有多少個是完全相同的。 这就是CIDR的后缀数。
  2. 再次检查! 差了一个数字可能造成你的區塊擴增了幾千个地址。

下面举例,计算從69.208.0.069.208.0.255之间的CIDR段。 注意, 这是一个简单的例子:某些IP地址郡組沒有那麼剛好符合CIDR的后缀, 需要用多个不同大小的區塊来屏蔽確切的段。

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位
CIDR的范围:
  69.208.0.0/24

IP地址范围表

下表显示了每个CIDR后缀所影响的IPv4區块。 请注意,MediaWiki默认只支持屏蔽 IPv4 中的CIDR后缀16~32和IPv6中的19(以前是64)~128(受$wgBlockCIDRLimit 限制)。 IPv6段表请参见/IPv6

Example IP4 ranges
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(65,536个IP地址)。 要屏蔽更大的封禁范围,需要在 LocalSettings.php 中相应地设置 $wgBlockCIDRLimit

已知問題

任何范围封锁都会造成一个众所周知的重要问题,那就是作为副作用,它们也会封锁一些受信任的注册群组,如维基管理员、不需要他人巡查的用户、和受信任的机器人。 详情: phabricator:T309328

参考资料

外部链接