Help:Range blocks/zh
-
- 有关 IPv6 范围封禁的信息,请参考 /IPv6。
范围封禁是施加于一组 IP 地址之上的技术限制手段,它通过 Special:Block 页面实施,以阻止他们编辑、创建新帐号、通过维基界面发送邮件等等。如果你选中了阻止登录用户使用这些 IP 地址编辑的复选框,那么当注册帐号使用被封禁范围内的 IP 地址连接时,他们也将不能编辑。
范围封禁在所有的 Wikimedia 维基中都是启用的。如果它没有在你的维基上启用,在 LocalSettings.php 中加上“$wgSysopRangeBans = true;
”即可启用它(在 MediaWiki 1.18.0 及更高版本中已永久启用)。
要在 Special:Block 页面中封禁一个 IP 范围,输入范围内的首个 IP 地址,加一个正斜线,最后再加一个无类别域间路由(CIDR)后缀。你应避免执行范围封禁,除非你明白你正在干什么。否则,你最终可能会封禁上万甚至数百万无关的人!
这篇文章主要讨论 IPv4;IPv6 与之类似,但又有所不同——参考 /IPv6。
非技术性解释[edit | edit source]
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 级分块,它们可以这样表示:
- 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 地址与许多位于 /17 范围内的其它 IP 地址被分配给了国防部。我们当然不想封禁一大片来自国防部的 IP 地址!经验上是封禁的越少越好。如果有一串 IP 地址导致问题,那么就应该只封禁一个范围。
针对这个问题,有一个很有用的计算器:http://www.csgnetwork.com/ipinfocalc.html. 访问这个网站并在首个空白处输入 148.20.57.34
。然后选择“网络前缀长度(Network Prefix Length)”并输入 27
(这表示含有 32 个地址的块),单击“计算网络信息(Calculate Network Information)”,我们就得到了一块含有 32 个 IP 地址、且包括 148.20.57.34 的块。(第一个——网络地址——和最后一个——广播地址——以及范围内的可用地址都会显示出来。)在执行封禁操作之前,你可以用这个工具测试你想要封禁的范围,以确保无误。
技术性解释[edit | edit source]
CIDR 表示法由 IP 地址,一个斜线,以及 CIDR 后缀够构成(例如,IPv4“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”)。对于 10.10.1.32–10.10.1.63 之间的 IP 地址来说,当转换到二进制之后,都具有相同的 27 个起始位。因此,如果 10.10.1.32/27 被封禁,那么它们都将被封禁。
随着 CIDR 后缀数值的增大,分块所影响的 IP 地址数量将会减少(参见示例范围表格)。CIDR 后缀在 IPv4 地址中和 IPv6 地址中有所不同;同一个 CIDR 后缀在 IPv6 中封禁的地址数量将是 IPv4 中的 296=79,228,162,514,264,337,593,543,950,336 倍。
计算 CIDR 后缀[edit | edit source]
你可以参考下面的示例范围表格来猜测范围,或者使用一个计算机脚本,或者手工计算范围。
转换到二进制[edit | edit source]
手工计算范围的第一步是将第一个和最后一个 IP 地址转换为二进制表示的。(脚本可能会帮你计算范围,但此处假设你不使用脚本。)一个 IP 地址是由四组八位二进制数(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。
计算范围[edit | edit source]
- 将一个 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
示例范围表格[edit | edit source]
下面的表格列出了每个 CIDR 后缀所影响的 IPv4 地址块。注意,默认情况下,MediaWiki 仅支持在 IPv4 中封禁 CIDR 后缀 16–32,以及在 IPv6 中封禁 64–128(在 $wgBlockCIDRLimit 中控制)。IPv6 范围表可参考 /IPv6。
CIDR | 起始地址 | 结束地址 | 地址数 | 在 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 |
默认限制[edit | edit source]
默认安装的 MediaWiki 限制了封禁范围不能大于 /16 的 IPv4 范围块(65,535 个地址)。要封禁更大的范围,需要对 LocalSettings.php 中的 $wgBlockCIDRLimit 做出相应设置。
参考[edit | edit source]
外部链接[edit | edit source]
- IP 地址范围封禁 可查询某些国家的完整 IP 范围。
- 网络掩码计算器 有助于在执行范围封禁时做出正确的决定。
- IP CIDR 计算器
- Rangeblock-Calculator 计算封禁时应使用的范围。
語: | English • español • français • Bahasa Indonesia • 日本語 • 한국어 • português • português do Brasil • 中文 |
---|