封禁功能实际上是通过向一组 IP 地址应用的技术限制, 它可以阻止用户进行编辑、创建新帐户、通过页面发送电子邮件等。 如果你选中Hardblock选项,它则会阻止已注册用户从被封禁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个数,只有两个能被分配到计算机 任何一个块的第一个数和最后一个数都被网络通信所保留。 下面有几种封禁方法,就像是这样:
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等。
148.20.57.0/28
开始。148.20.57.0/27
开始。148.20.57.0/26
开始。148.20.57.0/25
开始。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范围。
这是一个十分有用的计算器:
进入这个网页并输入 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.
这将向我们显示一个包含32个IP地址的封禁,其中包括 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.32
–10.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。
你可以用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
并减128。1
并减64。1
并减32。1
并减16。0
。因此, 240 表示为 1111 0000
。因为其可以被表示为 128+64+32+16+0+0+0+0。
下面举例,计算无类域间路由中的 69.208.0.0
和 69.208.0.255
之间的范围
注意, 这是一个简单的例子:某些 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
下表显示了每一个无类域间路由后缀对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地址)。 要阻止更大的封禁范围,需要在 LocalSettings.php 中相应地设置 $wgBlockCIDRLimit 。
One important already-known problem caused by any range-block, is that as side-effect they also block some trusted registered groups, like wiki administrators, users who do not need to be patrolled by others, and trusted bots. 详情: phabricator:T309328