Help:段封禁
注意:當您編輯本頁面時,即同意以CC0協議授權您的貢獻。您可以在公有領域帮助页面找到更多信息。 |
- 参见Help:段封鎖/IPv6 以获取有关IPv6段封禁的信息。
段封禁是通過Special:Block到一個群组的IP地址的技术限制, 以阻止它們进行编辑、创建新帐户、通过wiki介面发送电子邮件等。 若是你选了「封禁使用该IP地址登录的用户」选项,那些从被封禁IP地址范围內連接的已注册用户会被阻止进行编辑。
要想讓Special:Block封禁一个IP段,输入段内的第一个IP地址,在末尾加一个斜线和一个无类别域间路由(CIDR)的后缀。 你应该避免施行段封禁,除非你清楚了解你在做什么。否則,最终你可能会错误地封禁上万甚至上百万无辜的人!
本文主要是讨论IPv4;而IPv6的段封禁工作原理也是类似,但牽涉的層面不同 - 請见/IPv6。
非技术说明
IP地址被拆分成多個数的區块。
其中的例子是148.20.57.0
到148.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。
这裏有一个十分有用的计算器:
进入这个网页并输入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.32
–10.10.1.63
转换成二进制時,所有與10.10.1.32/27
有相同的27個起始数的地址被會被屏蔽。
隨著CIDR后缀的增加,區块中的IP数会减少(參见 IP位址範圍表). CIDR后缀用於IPv6中的地址中與用於IPv4中不同。相同CIDR后缀所屏蔽的IPv6地址数 =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:
- 240有大于等于128,所以填
1
然後减掉128。 - 112(240-128)有大于等于64,所以填
1
然後减掉64。 - 48(112-64)有大于等于32,所以填
1
然後减掉32。 - 16(48-32)有大于等于16,所以填
1
然後减掉16。 - 因为剩下的值是0,所以所有剩下的位子都是
0
。
因此, 240表示为1111 0000
,因为其可以被表示为128+64+32+16+0+0+0+0。
计算IP段
- 将二個IP地址的一个覆蓋上另一个,然後从开头数有多少個是完全相同的。 这就是CIDR的后缀数。
- 再次检查! 差了一个数字可能造成你的區塊擴增了幾千个地址。
下面举例,计算從69.208.0.0
和69.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。
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
参考资料
外部链接
- 子网掩码计算器有助於在IP段封禁中做出正确决策。
- 子网计算器可帮助计算IPv4和IPv6的前缀长度和子网掩码。c
- ftools 为您提供您在封禁时应该使用的IP段。
- IPv4和CIDR计算器可为您提供任何给定的掩码/CIDR的主机和IP范围细目,反之亦然。