Help:Range blocks

From GeodesyLab
Revision as of 14:35, 6 January 2010 by 71.81.58.174 (Talk) (External links)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Range blocks are technical restrictions applied through Special:Blockip to a group of IP addresses that prevent them from editing, creating new accounts, sending email through the wiki interface, et cetera. Registered accounts editing from these IP addresses will also be blocked, unless you check the box to only block anonymous editors.

Range blocking is enabled on all Wikimedia wikis; to enable it on other wikis, add "{{ #ifeq:

 gps.alaska.edu

| www.mediawiki.org | $wgSysopRangeBans | $wgSysopRangeBans }} = true;" in {{ #ifeq:

 gps.alaska.edu

| www.mediawiki.org | LocalSettings.php | LocalSettings.php }}.

To block an IP range from Special:Blockip, enter the first IP address in the range followed by a forward slash and a Classless inter-domain routing (CIDR) suffix. You should avoid performing range blocks unless you understand what you are doing, or you may end up blocking tens of thousands of people who are not the problem!

Technical explanation

CIDR notation is written as the IP address, a slash, and the CIDR affix (for example, the IPv4 "10.2.3.41/24" or IPv6 "a3:b:c1:d:e:f:1:21/24"). The CIDR affix is the number of starting digits every IP address in the range have in common when written in binary.

For example: "10.10.1.32" is binary "00001010.00001010.00000001.00100000", so 10.10.1.32/27 will match the first 27 digits ("00001010.00001010.00000001.00100000"). The IP addresses 10.10.1.3210.10.1.63, when converted to binary, all have the same 27 first digits and will be blocked if 10.10.1.32/27 is blocked.

As the CIDR affix increases, the block affects fewer IP addresses (see table of example ranges). CIDR affixes are not the same for IPv4 addresses as they are for IPv6 addresses.

Calculating the CIDR affix

You can use the table of sample ranges below to guess the range, use a computer script, or manually calculate the range.

Conversion to binary

The first step in manually calculating a range is to convert the first and last IP address to binary representation. (This assumes you're not using a computer script, which can probably calculate the range for you anyway.) An IP address is composed of four groups of eight ones and zeros. Each group represents a number from 0 to 255. To convert a number to binary, you can use a reference table or know the value of each binary digit:

1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1

Proceeding from left to right, fill in '1' if the number is at least that value, and subtract that value (if it's not, fill in '0' and don't subtract). For example, to calculate 240:

  1. 240 is at least 128, so place 1 and subtract 128.
  2. 112 (240-128) is at least 64, so place 1 and subtract 64.
  3. 48 (112-64) is at least 32, so place 1 and subtract 32.
  4. 16 (48-32) is at least 16, so place 1 and subtract 16.
  5. Since the remaining value is zero, all the remaining places are '0'.

Thus, 240 is 1111 0000 because it can be represented as 128+64+32+16+0+0+0+0.

Calculate range

  1. Place both IP addresses one atop the other, and count how many starting digits are exactly alike. This is the CIDR affix.
  2. Double-check! Being off by one digit could extend your block by thousands of addresses.

The example below calculates the CIDR range between 69.208.0.0 and 69.208.0.255. Note that this is a simple example; some groups of IP addresses do not so neatly fit CIDR affixes, and need multiple different-sized blocks to block the exact range.

IP addresses:
  69.208.0.0
  69.208.0.255
 
Convert to binary:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
 
Count identical first numbers:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
  |____________________________|
            24 digits
  
CIDR range:
  69.208.0.0/24

</pre>

Table of sample ranges

The table below shows the IP blocks each CIDR suffix affects. Note that MediaWiki only supports blocking CIDR suffixes 16–32.

CIDR Start Range End Range Total addresses Bits selected in IP address
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 67,108,864 01000101.********.********.********
69.208.0.0/11 69.208.0.0 69.238.255.255 2,197,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

References

External links

Template

Syntax

{{Languages|PageName}}
  • PageName (optional) - the name of the page to display language links for. If omitted then the English version of the current page is used. This parameter can normally be omitted, as it is only required if you want to link to a page other than the one you place the template on, which is very uncommon. If this parameter is used on a sub-page make sure you supply the root name, not the full page name (e.g. on MediaWiki/fr you would need to use {{Languages|MediaWiki}} and not {{Languages|MediaWiki/fr}}).

Usage

The template should only be placed on pages that exist in more than one language, and it should be placed in the same location on each translation of the page.

The English version of a page is always the main version, with all other languages as sub-pages, named using the appropriate language code (see below).

For example, on the Main Page you would include the text {{Languages}}, both on Main Page itself, and on each of its language sub-pages. The template automatically creates links to any language sub-pages that exist, e.g. Main Page/ja<tt>, <tt>Main Page/fr, and ignores non-existant languages.

See Project:Language policy for further details about translating pages.

Supported languages

This shows you the name of each language's sub-page (using Main Page as an example). Other languages may be added easily as necessary. Please use the appropriate prefix, as used on Wikipedia when adding a new language. Please do not add languages for which no pages exist yet, as this will increase the time needed to include the template without adding any benefit (languages are only displayed to the user when the relevant page exists).

The link on the language names goes to the Wikipedia in that language. If no Wikipedia in your language exists, do not add pages in that language to MediaWiki.org! This wiki is not the place for language advocacy - please go through the correct channels, and once your language has a Wikipedia then please return to add content here.

Page Name Language
Main Page English
Main Page/af Afrikaans
Main Page/ar Arabic
Main Page/az Azerbaijani
Main Page/bcc Southern Balochi
Main Page/bg Bulgarian
Main Page/br Breton
Main Page/ca Catalan
Main Page/cs Czech
Main Page/da Danish
Main Page/de German
Main Page/el Greek
Main Page/es Spanish
Main Page/fa Persian
Main Page/fi Finnish
Main Page/fr French
Main Page/gl Galician
Main Page/gu Gujarati
Main Page/he Hebrew
Main Page/hu Hungarian
Main Page/id Indonesian
Main Page/it Italian
Main Page/ja Japanese
Main Page/ka Georgian
Main Page/ko Korean
Main Page/ksh Kölsch
Main Page/ml Malayalam
Main Page/mr Marathi
Main Page/ms Malay
Main Page/nl Nederlands
Main Page/no Norwegian
Main Page/oc Occitan
Main Page/pl Polish
Main Page/pt Portugese
Main Page/pt-br Brazilian Portuguese
Main Page/ro Romanian
Main Page/ru Russian
Main Page/si Sinhalese
Main Page/sk Slovak
Main Page/sq Albanian
Main Page/sr Serbian
Main Page/sv Swedish
Main Page/ta Tamil
Main Page/th Thai
Main Page/tr Turkish
Main Page/uk Ukrainian
Main Page/vi Vietnamese
Main Page/yue Cantonese
Main Page/zh Chinese
Main Page/zh-hans Chinese (Simplified)
Main Page/zh-hant Chinese (Traditional)
Main Page/zh-tw Chinese (Taiwan)

Example

Here is how the language bar looks on the MediaWiki page: Template loop detected: Template:Languages