Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
MainPage
Community portal
Recent changes
Random page
Help
Special pages
Donate
Search
Search
English
Appearance
Log in
Request account
Personal tools
Log in
Request account
Export translations
Translate
English
Language statistics
Message group statistics
Export
Tools
Tools
move to sidebar
hide
Actions
Language statistics
Message group statistics
Export
General
Printable version
In other projects
Appearance
move to sidebar
hide
Settings
Group
Category:Maintenance
Help:Blocking users
Help:Bots
Help:Categories
Help:Contents
Help:Deletion and undeletion
Help:Diff
Help:Editing pages
Help:ExpandTemplates
Help:Extension:ParserFunctions
Help:External searches
Help:Formatting
Help:Images
Help:Links
Help:Magic words
Help:Managing files
Help:Moving a page
Help:Namespaces
Help:Navigation
Help:Parser functions in templates
Help:Patrolled edits
Help:Preferences
Help:Protected pages
Help:Random page
Help:Random root page
Help:Range blocks
Help:Recent changes
Help:Redirects
Help:Skins
Help:Special pages
Help:Starting a new page
Help:Substitution
Help:System message
Help:Tables
Help:Talk pages
Help:TemplateData
Help:Templates
Help:TemplateStyles
Help:Tracking changes
Help:Undelete
Help:User contributions
Help:Watchlist
Help:What links here
Manual:Expr parser function syntax
Manual:Extending wiki markup
Manual:Hooks
Manual:Magic words
Manual:Messages API
Manual:Parser functions
Module:Arguments/doc
Module:Int/doc
Module:Message box/configuration/doc
Module:Message box/doc
Module:Template translation/doc
Module:Transcluder/doc
Module:Version/doc
Module:Yesno/doc
News
Parser extension tags
Parser function extensions
Project:Language policy
Template:Admin tip
Template:Advanced user manual
Template:Anontools
Template:ApiEx
Template:Autocat
Template:Auxiliary template common notice
Template:Branching
Template:Bugfix
Template:Bugzilla
Template:Button
Template:Candidate
Template:Caution
Template:Clarify
Template:Collapse top
Template:Component
Template:Deprecated-inline
Template:Description missing
Template:Distinguish
Template:Documentation
Template:Documentation subpage
Template:Done
Template:EmptyCatGood
Template:Escape template list
Template:Excerpt
Template:Extension development
Template:Fixtext
Template:For
Template:Further
Template:Help
Template:High-risk
Template:Historical
Template:I18n navigation
Template:In progress
Template:Intricate template
Template:Introduced-inline
Template:IRC
Template:Localized link
Template:Localized link/messagedoc
Template:Magic words
Template:Main
Template:MainPage
Template:Markup
Template:Markup/row
Template:Mbox templates
Template:Module rating
Template:Move
Template:MW version
Template:MW version/layout
Template:N/a
Template:Navbar
Template:Newarticletext
Template:No
Template:Not done
Template:Note
Template:Optional
Template:Parser functions nav
Template:Partially done
Template:PD Help Page
Template:Phabricator
Template:Ptag
Template:Purge
Template:Recentchangestext
Template:Removed-inline
Template:Required
Template:Rev
Template:Security
Template:See
Template:See also
Template:Sp-contributions-footer
Template:Sp-contributions-footer-anon
Template:Special page
Template:Template shortcut
Template:Template test cases notice
Template:TemplateData header
Template:Thankyou
Template:To do
Template:Tracked
Template:Translatable
Template:Translatable template name
Template:Unusedtemplatestext
Template:Update
Template:Used in system
Template:Watchlists navigation
Template:Why
Template:WikiNonStop News
Template:Yes
TemplateData
Language
aa - Afar
aae - Arbëresh
ab - Abkhazian
abr - Abron
abs - Ambonese Malay
ace - Acehnese
acf - Saint Lucian Creole
acm - Iraqi Arabic
ady - Adyghe
ady-cyrl - Adyghe (Cyrillic script)
aeb - Tunisian Arabic
aeb-arab - Tunisian Arabic (Arabic script)
aeb-latn - Tunisian Arabic (Latin script)
af - Afrikaans
aig - Antiguan and Barbudan Creole English
aln - Gheg Albanian
alt - Southern Altai
am - Amharic
ami - Amis
an - Aragonese
ang - Old English
ann - Obolo
anp - Angika
apc - Levantine Arabic
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
atj - Atikamekw
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - South Azerbaijani
ba - Bashkir
ban - Balinese
ban-bali - Balinese (Balinese script)
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba (Latin script)
bcc - Southern Balochi
bci - Baoulé
bcl - Central Bikol
bdr - West Coast Bajau
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bew - Betawi
bg - Bulgarian
bgc - Haryanvi
bgn - Western Balochi
bh - Bhojpuri
bho - Bhojpuri
bi - Bislama
bjn - Banjar
blk - Pa'O
bm - Bambara
bn - Bangla
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
btm - Batak Mandailing
bto - Rinconada Bikol
bug - Buginese
bug-bugi - Buginese (Buginese script)
bxr - Russia Buriat
ca - Catalan
cbk-zam - Chavacano
ccp - Chakma
cdo - Mindong
cdo-hant - Mindong (Traditional Han script)
cdo-latn - Mindong (Latin script)
ce - Chechen
ceb - Cebuano
ch - Chamorro
chn - Chinook Jargon
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cop - Coptic
cps - Capiznon
cpx - Puxian
cpx-hans - Puxian (Simplified Han script)
cpx-hant - Puxian (Traditional Han script)
cpx-latn - Puxian (Latin script)
cr - Cree
crh - Crimean Tatar
crh-cyrl - Crimean Tatar (Cyrillic script)
crh-latn - Crimean Tatar (Latin script)
crh-ro - Dobrujan Tatar
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
dag - Dagbani
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
dga - Southern Dagaare
din - Dinka
diq - Dimli
dlg - Dolgan
dsb - Lower Sorbian
dtp - Central Dusun
dty - Doteli
dua - Duala
dv - Divehi
dz - Dzongkha
ee - Ewe
efi - Efik
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
es-419 - Latin American Spanish
es-formal - Spanish (formal address)
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
fat - Fanti
ff - Fula
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fon - Fon
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fvr - Fur
fy - Western Frisian
ga - Irish
gaa - Ga
gag - Gagauz
gan - Gan
gan-hans - Gan (Simplified Han script)
gan-hant - Gan (Traditional Han script)
gcf - Guadeloupean Creole
gcr - Guianan Creole
gd - Scottish Gaelic
gl - Galician
gld - Nanai
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
gor - Gorontalo
got - Gothic
gpe - Ghanaian Pidgin
grc - Ancient Greek
gsw - Alemannic
gu - Gujarati
guc - Wayuu
gur - Frafra
guw - Gun
gv - Manx
ha - Hausa
hak - Hakka Chinese
hak-hans - Hakka (Simplified Han script)
hak-hant - Hakka (Traditional Han script)
hak-latn - Hakka (Latin script)
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
hke - Hunde
hno - Northern Hindko
ho - Hiri Motu
hoc-latn - Ho (Latin script)
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
hsn - Xiang
ht - Haitian Creole
hu - Hungarian
hu-formal - Hungarian (formal address)
hy - Armenian
hyw - Western Armenian
hz - Herero
ia - Interlingua
iba - Iban
ibb - Ibibio
id - Indonesian
ie - Interlingue
ig - Igbo
igl - Igala
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
isv-cyrl - Interslavic (Cyrillic script)
isv-latn - Interslavic (Latin script)
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kai - Karekare
kaj - Jju
kbd - Kabardian
kbd-cyrl - Kabardian (Cyrillic script)
kbp - Kabiye
kcg - Tyap
kea - Kabuverdianu
kg - Kongo
kge - Komering
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kjh - Khakas
kjp - Eastern Pwo
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
knc - Central Kanuri
ko - Korean
ko-kp - Korean (North Korea)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
krl - Karelian
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ksw - S'gaw Karen
ku - Kurdish
ku-arab - Kurdish (Arabic script)
ku-latn - Kurdish (Latin script)
kum - Kumyk
kus - Kusaal
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - Lak
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
ljp - Lampung Api
lki - Laki
lld - Ladin
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lua - Luba-Lulua
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mad - Madurese
mag - Magahi
mai - Maithili
map-bms - Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Māori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mnc - Manchu
mnc-latn - Manchu (Latin script)
mnc-mong - Manchu (Mongolian script)
mni - Manipuri
mnw - Mon
mo - Moldovan
mos - Mossi
mr - Marathi
mrh - Mara
mrj - Western Mari
ms - Malay
ms-arab - Malay (Jawi script)
mt - Maltese
mui - Musi
mus - Muscogee
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nahuatl
nan - Minnan
nan-hant - Minnan (Traditional Han script)
nan-latn-pehoeji - Minnan (Pe̍h-ōe-jī)
nan-latn-tailo - Minnan (Tâi-lô)
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
nia - Nias
nit - Southeastern Kolami
niu - Niuean
nl - Dutch
nl-informal - Dutch (informal address)
nmz - Nawdm
nn - Norwegian Nynorsk
no - Norwegian
nod - Northern Thai
nog - Nogai
nov - Novial
nqo - N’Ko
nr - South Ndebele
nrm - Norman
nso - Northern Sotho
nup - Nupe
nv - Navajo
ny - Nyanja
nyn - Nyankole
nyo - Nyoro
nys - Nyungar
oc - Occitan
ojb - Northwestern Ojibwa
olo - Livvi-Karelian
om - Oromo
or - Odia
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pap-aw - Papiamento (Aruba)
pcd - Picard
pcm - Nigerian Pidgin
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Pitcairn-Norfolk
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
pwn - Paiwan
qqq - Message documentation
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rki - Arakanese
rm - Romansh
rmc - Carpathian Romani
rmy - Vlax Romani
rn - Rundi
ro - Romanian
roa-tara - Tarantino
rsk - Pannonian Rusyn
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rut - Rutul
rw - Kinyarwanda
ryu - Okinawan
sa - Sanskrit
sah - Yakut
sas - Sasak
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
se-fi - Northern Sami (Finland)
se-no - Northern Sami (Norway)
se-se - Northern Sami (Sweden)
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
sh-cyrl - Serbo-Croatian (Cyrillic script)
sh-latn - Serbo-Croatian (Latin script)
shi - Tachelhit
shi-latn - Tachelhit (Latin script)
shi-tfng - Tachelhit (Tifinagh script)
shn - Shan
shy - Shawiya
shy-latn - Shawiya (Latin script)
si - Sinhala
simple - Simple English
sjd - Kildin Sami
sje - Pite Sami
sk - Slovak
skr - Saraiki
skr-arab - Saraiki (Arabic script)
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
smn - Inari Sami
sms - Skolt Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - Serbian (Cyrillic script)
sr-el - Serbian (Latin script)
srn - Sranan Tongo
sro - Campidanese Sardinian
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
sty - Siberian Tatar
su - Sundanese
sv - Swedish
sw - Swahili
syl - Sylheti
szl - Silesian
szy - Sakizaya
ta - Tamil
tay - Atayal
tcy - Tulu
tdd - Tai Nuea
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tig - Tigre
tk - Turkmen
tl - Tagalog
tly - Talysh
tly-cyrl - Talysh (Cyrillic script)
tn - Tswana
to - Tongan
tok - Toki Pona
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
trv - Taroko
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
ttj - Tooro
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - Uzbek (Cyrillic script)
uz-latn - Uzbek (Latin script)
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vmw - Makhuwa
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
wal - Wolaytta
war - Waray
wls - Wallisian
wlx - Wali
wo - Wolof
wuu - Wu
wuu-hans - Wu (Simplified Han script)
wuu-hant - Wu (Traditional Han script)
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
xsy - Saisiyat
yi - Yiddish
yo - Yoruba
yrl - Nheengatu
yua - Yucatec Maya
yue - Cantonese
yue-hans - Cantonese (Simplified Han script)
yue-hant - Cantonese (Traditional Han script)
za - Zhuang
zea - Zeelandic
zgh - Standard Moroccan Tamazight
zgh-latn - Standard Moroccan Tamazight (Latin script)
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - Chinese (Macau)
zh-my - Chinese (Malaysia)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
Format
Export for off-line translation
Export in native format
Export in CSV format
Fetch
<languages/> {{PD Help Page}} ::''<span lang="en" dir="ltr" class="mw-content-ltr">See {{ll|Help:Range blocks/IPv6}} for information on IPv6 range blocks.</span>'' <span lang="en" dir="ltr" class="mw-content-ltr">'''Range blocks''' are technical restrictions applied through [[Special:Block]] to a group of [[w:IP addresses|IP addresses]] that prevent them from editing, creating new accounts, sending email through the wiki interface, etc.</span> <span lang="en" dir="ltr" class="mw-content-ltr">If you check the box "{{int|ipb-hardblock}}", edits from registered accounts will also be disabled while they are connecting from the blocked range.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> To block an IP range from [[Special:Block]], enter the first IP address in the range followed by a forward slash and a [[w:Classless inter-domain routing|Classless inter-domain routing]] (CIDR) suffix. </div> '''<span lang="en" dir="ltr" class="mw-content-ltr">You should avoid performing range blocks unless you understand what you are doing, or you may end up blocking tens of thousands or even millions of people who are not the problem!</span>''' '''<span lang="en" dir="ltr" class="mw-content-ltr">This article mainly discusses [[w:IPv4|IPv4]]; [[w:IPv6|IPv6]] blocks work similarly, but have different implications—see [[Special:MyLanguage/Help:Range blocks/IPv6|/IPv6]].</span>''' <div lang="en" dir="ltr" class="mw-content-ltr"> == Non-technical explanation == </div> <span lang="en" dir="ltr" class="mw-content-ltr">IP addresses are broken up into blocks of numbers.</span> <span lang="en" dir="ltr" class="mw-content-ltr">An example of this would be <code>148.20.57.0</code> through to <code>148.20.57.255</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Once it reaches <code>255</code> the next number is <code>148.20.58.0</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">IP addresses can be broken up in to smaller or larger blocks.</span> <span lang="en" dir="ltr" class="mw-content-ltr">The smallest practical block is a block of 4.</span> <span lang="en" dir="ltr" class="mw-content-ltr">This could be one of the following:</span> :<code>148.20.57.0 - 148.20.57.3</code>, :<code>148.20.57.4 - 148.20.57.7</code>, :<code>148.20.57.8 - 148.20.57.11</code>, ... <span lang="en" dir="ltr" class="mw-content-ltr">Of each block of 4 numbers, only two can be assigned to a computer.</span> <span lang="en" dir="ltr" class="mw-content-ltr">The first and last numbers of any block are reserved for network communication.</span> <span lang="en" dir="ltr" class="mw-content-ltr">These are level 30 blocks and can be expressed like this:</span> :<code>148.20.57.0/30</code>, :<code>148.20.57.4/30</code>, :<code>148.20.57.8/30</code>, ... <span lang="en" dir="ltr" class="mw-content-ltr">The next largest block is 8.</span> <span lang="en" dir="ltr" class="mw-content-ltr">They can be as follows:</span> :<code>148.20.57.0 - 148.20.57.7</code>, :<code>148.20.57.8 - 148.20.57.15</code>, :<code>148.20.57.16 - 148.20.57.23</code>, ... <span lang="en" dir="ltr" class="mw-content-ltr">In this block of 8 numbers only 6 can be assigned to a computer as, once again, the first and last numbers in a block are reserved for specific uses in network communication.</span> <span lang="en" dir="ltr" class="mw-content-ltr">These can also be expressed as follows:</span> :<code>148.20.57.0/29</code>, :<code>148.20.57.8/29</code>, :<code>148.20.57.16/29</code>, ... <div lang="en" dir="ltr" class="mw-content-ltr"> From this point on, the number of IP addresses in a block continues to double: 16, 32, 64, 128, 256, etc. </div> :<span lang="en" dir="ltr" class="mw-content-ltr">A block of 16 would start <code>148.20.57.0/28</code>.</span> :<span lang="en" dir="ltr" class="mw-content-ltr">A block of 32 would start <code>148.20.57.0/27</code>.</span> :<span lang="en" dir="ltr" class="mw-content-ltr">A block of 64 would start <code>148.20.57.0/26</code>.</span> :<span lang="en" dir="ltr" class="mw-content-ltr">A block of 128 would start <code>148.20.57.0/25</code>.</span> :<span lang="en" dir="ltr" class="mw-content-ltr">A block of 256 would start <code>148.20.57.0/24</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">So if you have an IP address and you want to block the range assigned how do you know which one to use?</span> <span lang="en" dir="ltr" class="mw-content-ltr">Let's say you have a problem with <code>148.20.57.34</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">You can look up who has this IP address at http://arin.net/whois/?queryinput=148.20.57.34.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Say this tells us that this IP address is assigned, along with a LOT of others in a <code>/17</code> range, to the Department of Defense.</span> <span lang="en" dir="ltr" class="mw-content-ltr">We certainly don't want to block a large block of the DoD!</span> <span lang="en" dir="ltr" class="mw-content-ltr">The rule of thumb is block as little as possible.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Only block a range if there is a cluster of IP addresses giving a problem.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> There's a calculator that is very useful for this: </div> :[[toolforge:ftools/general/ip-range-calc.html]] <span lang="en" dir="ltr" class="mw-content-ltr">Go to this site and enter <code>148.20.57.34</code> into the first set of blanks.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Now select ''Network Prefix Length'' and enter <code>27</code> (this will give a block of 32 addresses) and click on ''Calculate Network Information''.</span> <span lang="en" dir="ltr" class="mw-content-ltr">This will show us a block of 32 IP addresses that include <code>148.20.57.34</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">(The first address (network address) and the last address (broadcast address) will be displayed along with the usable addresses in the range.)</span> <span lang="en" dir="ltr" class="mw-content-ltr">You can use this tool to test ranges to be sure they are what you want before entering the information to initiate the block.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == Technical explanation == </div> <span lang="en" dir="ltr" class="mw-content-ltr">CIDR notation is written as the IP address, a slash, and the CIDR suffix (for example, the IPv4 "<code>10.2.3.41/24</code>" or IPv6 "<code>a3:bc00::/24</code>").</span> <span lang="en" dir="ltr" class="mw-content-ltr">The CIDR suffix is the number of starting digits every IP address in the range have in common when written in binary.</span> <span lang="en" dir="ltr" class="mw-content-ltr">For example: "<code>10.10.1.32</code>" is binary "<code>00001010.00001010.00000001.00100000</code>", so <code>10.10.1.32/27</code> will match the first 27 digits ("<code><u>00001010</u>.<u>00001010</u>.<u>00000001</u>.<u>001</u>00000</code>").</span> <span lang="en" dir="ltr" class="mw-content-ltr">The IP addresses <code>10.10.1.32</code>–<code>10.10.1.63</code>, when converted to binary, all have the same 27 first digits and will be blocked if <code>10.10.1.32/27</code> is blocked.</span> <span lang="en" dir="ltr" class="mw-content-ltr">As the CIDR suffix increases, the block affects fewer IP addresses (see [[#Table of sample ranges|table of sample ranges]]).</span> <span lang="en" dir="ltr" class="mw-content-ltr">CIDR suffixes are not the same for IPv4 addresses as they are for IPv6 addresses; the same CIDR suffix in IPv4 blocks <math>2^{96}</math>=79,228,162,514,264,337,593,543,950,336 times as many addresses in IPv6.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == Calculating the CIDR suffix == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can use the [[#Table of sample ranges|table of sample ranges]] below to guess the range, use a computer script, or manually calculate the range. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Conversion to binary === </div> <span lang="en" dir="ltr" class="mw-content-ltr">The first step in manually calculating a range is to convert the first and last IP address to binary representation.</span> <span lang="en" dir="ltr" class="mw-content-ltr">(This assumes you're not using a computer script, which can probably calculate the range for you anyway.)</span> <span lang="en" dir="ltr" class="mw-content-ltr">An IP address is composed of four groups of eight ones and zeros.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Each group represents a number from 0 to 255.</span> <span lang="en" dir="ltr" class="mw-content-ltr">To convert a number to binary, you can use a reference table or know the value of each binary digit:</span> {| | <span lang="en" dir="ltr" class="mw-content-ltr">Binary digit</span>: | <code> 1 1 1 1 1 1 1 1</code> |- | <span lang="en" dir="ltr" class="mw-content-ltr">Value</span>: | <code>128 64 32 16 8 4 2 1</code> |} <span lang="en" dir="ltr" class="mw-content-ltr">Proceeding from left to right, fill in <code>1</code> if the number is at least that value, and subtract that value (if it's not, fill in <code>0</code> and don't subtract).</span> <span lang="en" dir="ltr" class="mw-content-ltr">For example, to calculate 240:</span> # <span lang="en" dir="ltr" class="mw-content-ltr">240 is at least 128, so place <code>1</code> and subtract 128.</span> # <span lang="en" dir="ltr" class="mw-content-ltr">112 (240-128) is at least 64, so place <code>1</code> and subtract 64.</span> # <span lang="en" dir="ltr" class="mw-content-ltr">48 (112-64) is at least 32, so place <code>1</code> and subtract 32.</span> # <span lang="en" dir="ltr" class="mw-content-ltr">16 (48-32) is at least 16, so place <code>1</code> and subtract 16.</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Since the remaining value is zero, all the remaining places are <code>0</code>.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> Thus, 240 is <code>1111 0000</code> because it can be represented as 128+64+32+16+0+0+0+0. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Calculate range === </div> # <span lang="en" dir="ltr" class="mw-content-ltr">Place both IP addresses one atop the other, and count how many starting digits are exactly alike.</span> <span lang="en" dir="ltr" class="mw-content-ltr">This is the CIDR suffix.</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Double-check!</span> <span lang="en" dir="ltr" class="mw-content-ltr">Being off by one digit could extend your block by thousands of addresses.</span> <span lang="en" dir="ltr" class="mw-content-ltr">The example below calculates the CIDR range between <code>69.208.0.0</code> and <code>69.208.0.255</code>.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Note that this is a simple example; some groups of IP addresses do not so neatly fit CIDR suffixes, and need multiple different-sized blocks to block the exact range.</span> :<span lang="en" dir="ltr" class="mw-content-ltr">IP addresses</span>: :<code> 69.208.0.0</code> :<code> 69.208.0.255</code> :<span lang="en" dir="ltr" class="mw-content-ltr">Convert to binary</span>: :<code> 0100 0101.1101 0000.0000 0000.0000 0000</code> :<code> 0100 0101.1101 0000.0000 0000.1111 1111</code> :<span lang="en" dir="ltr" class="mw-content-ltr">Count identical first numbers</span>: :<code> '''0100 0101.1101 0000.0000 0000'''.0000 0000</code> :<code> '''0100 0101.1101 0000.0000 0000'''.1111 1111</code> :<code> |____________________________|</code> :<code> <span lang="en" dir="ltr" class="mw-content-ltr">24 digits</span></code> :<span lang="en" dir="ltr" class="mw-content-ltr">CIDR range</span>: :<code> 69.208.0.0/24</code> <div lang="en" dir="ltr" class="mw-content-ltr"> == Range table == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Legend === </div> {|class="wikitable" |-style="color:maroon;" | <span lang="en" dir="ltr" class="mw-content-ltr">No organization would ever receive an allocation of this size</span> |-style="color:red;" | <span lang="en" dir="ltr" class="mw-content-ltr">Very large organizations/ISP allocatable sizes</span> |-style="color:orange;" | <span lang="en" dir="ltr" class="mw-content-ltr">(large) organizations rent/buyable/allocatable sizes</span> |-style="color:green;" | <span lang="en" dir="ltr" class="mw-content-ltr">End-user rent/buyable sizes</span> |-style="color:black;" | <span lang="en" dir="ltr" class="mw-content-ltr">Single address</span> |- |} <div lang="en" dir="ltr" class="mw-content-ltr"> === Table of sample ranges === </div> <span lang="en" dir="ltr" class="mw-content-ltr">The table below shows the IPv4 blocks each CIDR suffix affects.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Note that MediaWiki only supports blocking CIDR suffixes 16 - 32 in IPv4 and 19 (formerly 64) - 128 in IPv6 by default (subject to {{ll|Manual:$wgBlockCIDRLimit|$wgBlockCIDRLimit}}).</span> <span lang="en" dir="ltr" class="mw-content-ltr">See [[Special:MyLanguage/Help:Range blocks/IPv6|/IPv6]] for an IPv6 range table.</span> {| class="wikitable plainrowheaders" align=center |+<span lang="en" dir="ltr" class="mw-content-ltr">Example IPv4 ranges</span> !scope="col" | CIDR !scope="col" | <span lang="en" dir="ltr" class="mw-content-ltr">Start Range</span> !scope="col" | <span lang="en" dir="ltr" class="mw-content-ltr">End Range</span> !scope="col" | <span lang="en" dir="ltr" class="mw-content-ltr">Total addresses</span> !scope="col" | <span lang="en" dir="ltr" class="mw-content-ltr">Total /24 subnets</span> !scope="col" | <span lang="en" dir="ltr" class="mw-content-ltr">Bits selected in IP address</span> |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/0''' | 0.0.0.0 | 255.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:4294967296}} | align=right style="font-family:sans-serif" | {{formatnum:16777216}} | ********.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/1''' | 0.0.0.0 | 127.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:2147483648}} | align=right style="font-family:sans-serif" | {{formatnum:8388608}} | 0*******.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/2''' | 64.0.0.0 | 127.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:1073741822}} | align=right style="font-family:sans-serif" | {{formatnum:4194304}} | 01******.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/3''' | 64.0.0.0 | 95.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:536870912}} | align=right style="font-family:sans-serif" | {{formatnum:2097152}} | 010*****.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/4''' | 64.0.0.0 | 79.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:268435456}} | align=right style="font-family:sans-serif" | {{formatnum:1048576}} | 0100****.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/5''' | 64.0.0.0 | 71.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:134217728}} | align=right style="font-family:sans-serif" | {{formatnum:524288}} | 01000***.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/6''' | 68.0.0.0 | 71.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:67108864}} | align=right style="font-family:sans-serif" | {{formatnum:262144}} | 010000**.********.********.******** |- style="color:maroon; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/7''' | 68.0.0.0 | 69.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:33554432}} | align=right style="font-family:sans-serif" | {{formatnum:131072}} | 0100000*.********.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/8''' | 69.0.0.0 | 69.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:16777216}} | align=right style="font-family:sans-serif" | {{formatnum:65536}} | 01000101.********.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/9''' | 69.128.0.0 | 69.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:8388606}} | align=right style="font-family:sans-serif" | {{formatnum:32768}} | 01000101.1*******.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/10''' | 69.192.0.0 | 69.255.255.255 | align=right style="font-family:sans-serif" | {{formatnum:4194302}} | align=right style="font-family:sans-serif" | {{formatnum:16384}} | 01000101.11******.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/11''' | 69.192.0.0 | 69.223.255.255 | align=right style="font-family:sans-serif" | {{formatnum:2097152}} | align=right style="font-family:sans-serif" | {{formatnum:8192}} | 01000101.110*****.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/12''' | 69.208.0.0 | 69.223.255.255 | align=right style="font-family:sans-serif" | {{formatnum:1048576}} | align=right style="font-family:sans-serif" | {{formatnum:4096}} | 01000101.1101****.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/13''' | 69.208.0.0 | 69.215.255.255 | align=right style="font-family:sans-serif" | {{formatnum:524288}} | align=right style="font-family:sans-serif" | {{formatnum:2048}} | 01000101.11010***.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/14''' | 69.208.0.0 | 69.211.255.255 | align=right style="font-family:sans-serif" | {{formatnum:262144}} | align=right style="font-family:sans-serif" | {{formatnum:1024}} | 01000101.110100**.********.******** |- style="color:red; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/15''' | 69.208.0.0 | 69.209.255.255 | align=right style="font-family:sans-serif" | {{formatnum:131072}} | align=right style="font-family:sans-serif" | {{formatnum:512}} | 01000101.1101000*.********.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/16''' | 69.208.0.0 | 69.208.255.255 | align=right style="font-family:sans-serif" | {{formatnum:65536}} | align=right style="font-family:sans-serif" | {{formatnum:256}} | 01000101.11010000.********.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/17''' | 69.208.0.0 | 69.208.127.255 | align=right style="font-family:sans-serif" | {{formatnum:32768}} | align=right style="font-family:sans-serif" | {{formatnum:128}} | 01000101.11010000.0*******.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/18''' | 69.208.0.0 | 69.208.63.255 | align=right style="font-family:sans-serif" | {{formatnum:16384}} | align=right style="font-family:sans-serif" | {{formatnum:64}} | 01000101.11010000.00******.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/19''' | 69.208.0.0 | 69.208.31.255 | align=right style="font-family:sans-serif" | {{formatnum:8192}} | align=right style="font-family:sans-serif" | {{formatnum:32}} | 01000101.11010000.000*****.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/20''' | 69.208.0.0 | 69.208.15.255 | align=right style="font-family:sans-serif" | {{formatnum:4096}} | align=right style="font-family:sans-serif" | {{formatnum:16}} | 01000101.11010000.0000****.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/21''' | 69.208.0.0 | 69.208.7.255 | align=right style="font-family:sans-serif" | {{formatnum:2048}} | align=right style="font-family:sans-serif" | {{formatnum:8}} | 01000101.11010000.00000***.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/22''' | 69.208.0.0 | 69.208.3.255 | align=right style="font-family:sans-serif" | {{formatnum:1024}} | align=right style="font-family:sans-serif" | {{formatnum:4}} | 01000101.11010000.000000**.******** |- style="color:orange; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/23''' | 69.208.0.0 | 69.208.1.255 | align=right style="font-family:sans-serif" | {{formatnum:512}} | align=right style="font-family:sans-serif" | {{formatnum:2}} | 01000101.11010000.0000000*.******** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/24''' | 69.208.0.0 | 69.208.0.255 | align=right style="font-family:sans-serif" | {{formatnum:256}} | align=right style="font-family:sans-serif" | {{formatnum:1}} | 01000101.11010000.00000000.******** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/25''' | 69.208.0.0 | 69.208.0.127 | align=right style="font-family:sans-serif" | {{formatnum:128}} | | 01000101.11010000.00000000.0******* |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/26''' | 69.208.0.0 | 69.208.0.63 | align=right style="font-family:sans-serif" | {{formatnum:64}} | | 01000101.11010000.00000000.00****** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/27''' | 69.208.0.0 | 69.208.0.31 | align=right style="font-family:sans-serif" | {{formatnum:32}} | | 01000101.11010000.00000000.000***** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/28''' | 69.208.0.0 | 69.208.0.15 | align=right style="font-family:sans-serif" | {{formatnum:16}} | | 01000101.11010000.00000000.0000**** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/29''' | 69.208.0.0 | 69.208.0.7 | align=right style="font-family:sans-serif" | {{formatnum:8}} | | 01000101.11010000.00000000.00000*** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/30''' | 69.208.0.0 | 69.208.0.3 | align=right style="font-family:sans-serif" | {{formatnum:4}} | | 01000101.11010000.00000000.000000** |- style="color:green; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/31''' | 69.208.0.0 | 69.208.0.1 | align=right style="font-family:sans-serif" | {{formatnum:2}} | | 01000101.11010000.00000000.0000000* |- style="color:black; font-family:monospace,'Courier'" !scope="row" | 69.208.0.0'''/32''' | 69.208.0.0 | 69.208.0.0 | align=right style="font-family:sans-serif" | {{formatnum:1}} | | 01000101.11010000.00000000.00000000 |} <div lang="en" dir="ltr" class="mw-content-ltr"> == Default limitation == </div> <span lang="en" dir="ltr" class="mw-content-ltr">The default MediaWiki installation limits range blocks to no larger than /16 IPv4 rangeblocks (65,536 addresses).</span> <span lang="en" dir="ltr" class="mw-content-ltr">To block larger ranges {{ll|Manual:$wgBlockCIDRLimit|$wgBlockCIDRLimit}} needs to be set accordingly in {{ll|Manual:LocalSettings.php|LocalSettings.php}}.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == Known problems == </div> <span lang="en" dir="ltr" class="mw-content-ltr">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.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Details:</span> [[phabricator:T309328]] <div lang="en" dir="ltr" class="mw-content-ltr"> == References == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">[[w:Classless Inter-Domain Routing|Classless Inter-Domain Routing]]</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == External links == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [http://apps.csc.fi/laskin2.html Netmask calculator] which helps in making the correct decision for range blocks. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://subnet.ninja Subnet Calculator] can help calculate prefix length and subnet mask for IPv4 and IPv6. </div> * [[toolforge:ftools/general/ip-range-calc.html|ftools]] <span lang="en" dir="ltr" class="mw-content-ltr">gives you the range you should use when blocking.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> * [http://subnet-calculator.org/ IPv4 and CIDR Calculator] gives you a breakdown of Hosts and IP Range for any Given Mask/CIDR and reverse. </div> [[Category:Help{{#translation:}}|Range blocks]] [[Category:Block{{#translation:}}|Range blocks]]
Search
Search
Export translations
Add topic