Help:Range blocks/zh

From MediaWiki.org
Jump to: navigation, search
PD 注意:当你编辑本页面时,你将表示同意以CC0协议授权你的贡献。你可以在公有领域帮助文档找到更多信息。
PD
有关 IPv6 范围封禁的信息,请参考 /IPv6

范围封禁是施加于一组 IP 地址之上的技术限制手段,它通过 Special:Block 页面实施,以阻止他们编辑、创建新帐号、通过维基界面发送邮件等等。如果你选中了阻止登录用户使用这些 IP 地址编辑的复选框,那么当注册帐号使用被封禁范围内的 IP 地址连接时,他们也将不能编辑。

范围封禁在所有的 Wikimedia 维基中都是启用的。如果它没有在你的维基上启用,在 LocalSettings.php 中加上“$wgSysopRangeBans = true;”即可启用它(在 MediaWiki 1.18.0 及更高版本中已永久启用)。

要在 Special:Block 页面中封禁一个 IP 范围,输入范围内的首个 IP 地址,加一个正斜线,最后再加一个无类别域间路由(CIDR)后缀。你应避免执行范围封禁,除非你明白你正在干什么。否则,你最终可能会封禁上万甚至数百万无关的人!

这篇文章主要讨论 IPv4IPv6 与之类似,但又有所不同——参考 /IPv6

非技术性解释[edit | edit source]

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 级分块,它们可以这样表示:

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.3210.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:

  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。

计算范围[edit | edit source]

  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

示例范围表格[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]

語: English  • español • français • Bahasa Indonesia • 日本語 • 한국어 • português • português do Brasil • 中文