servers.minetest.net statistics 10 days (7th Mar 2017 -- 17th Mar 2017) only server list fetches were counted General stats ------------- total: 1927468 IPv4 -> 1758554 91.24% IPv6 -> 168914 08.76% Browser -> 210164 10.90% Game -> 1717304 89.10% Game stats ---------- total: 1717304 (Identifies as) Minetest: 0.4.15 -> 101139 05.89% 0.4.14 -> 32227 01.88% 0.4.13 -> 240727 14.02% 0.4.12 -> 4646 00.27% gUnknown -> 420 00.02% 0.4.11 -> 42938 02.50% 0.4.10 -> 4762 00.28% 0.4.9 -> 1250 00.07% 0.4.8 -> 15 00.00% 0.4.7 or older -> 6509 00.38% Third party (with >10000 total): MultiCraft 1.1.7 -> 4 00.00% based on 0.4.15 (?) MultiCraft 1.1.4 -> 1044123 60.80% based on 0.4.14 MultiCraft 1.1.2 -> 22748 01.32% MultiCraft 1.1.0 -> 19 00.00% both based on 0.4.13 MultiCraft 1.0.3 -> 11 00.00% MultiCraft 1.0.1 -> 1353 00.08% both based on 0.4.12 FreeCraft -> 53758 03.13% pickaxegame -> 33504 01.95% castlemedieval -> 20977 01.22% modernhousebuild -> 20485 01.19% pocketworldcraft -> 17983 01.05% cgbuildahouse -> 10490 00.61% cgcraftingguide -> 10216 00.59% other/unknown -> 50735 02.95% Note about gUnknown: This "version" exists since 0.4.11 for Android: https://github.com/minetest/minetest/commit/d38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972 That means all "gUnknown" clients are on Android and run 0.4.11 or newer. Note about 0.4.7 or older: Many of these exhibit scraping behaviour and are likely not actual clients, subtract at least 2243 from the absolute number given. Note about other/unknown: Those are 99% other Android clients or curl/libwww-perl/Python-urllib. Third party store links: MultiCraft -- https://play.google.com/store/apps/details?id=mobi.MultiCraft FreeCraft -- https://play.google.com/store/apps/details?id=com.freecraft.exploration pickaxegame -- https://play.google.com/store/apps/details?id=com.andri8nov.pickaxegames castlemedieval -- https://play.google.com/store/apps/details?id=com.roso2kosi.castmedbu modernhousebuild -- https://play.google.com/store/apps/details?id=com.roso2kosi.modhousb pocketworldcraft -- https://play.google.com/store/apps/details?id=com.pocket.edition.worldcraftpe cgbuildahouse -- ??? cgcraftingguide -- ??? Effective version distribution ------------------------------ based on prev. section 0.4.15 -> 101143 05.89% 0.4.14 -> 1076350 62.68% 0.4.13 -> 263494 15.34% 0.4.12 -> 6010 00.35% 0.4.11 -> 43358 02.52% 0.4.10 or older -> 12536 00.73% unknown -> 218148 12.70% Note on unknown: These are most likely anywhere between 0.4.12 and 0.4.14. Platform stats -------------- total: 1707960 x86 -> 60246 03.53% x86_64 -> 117637 06.89% armv6/7l -> 1257186 73.61% aarch64 -> 272799 15.97% ??? -> 92 00.01% Desktop -> 177883 10.41% Mobile -> 1529985 89.58% ??? -> 92 00.01% (all ARM devices were counted as mobile) Linux -> 1455166 85.20% Windows -> 63410 03.71% Darwin -> 189188 11.08% *BSD -> 165 00.01% other -> 31 00.00% Linux stats ----------- total: 1455166 oldest Linux version: 2.6.32-5-amd64 newest Linux version: 4.9.9-rt6-1-rt most common Linux versions: 117639 3.4.67 08.08% 46586 3.4.5 03.20% 37446 3.4.39 02.57% 34579 3.10.72+ 02.37% 34164 3.10.65 02.34% Windows stats ------------- total: 63410 Windows 8(.1)/10 -> 34189 53.92% Windows 7 -> 25819 40.72% Windows Vista -> 753 01.19% Windows XP -> 2639 04.16% older -> 10 00.02% Mobile stats ------------ total: 1529985 Android -> 1343502 87.81% iOS -> 186483 12.19% iOS stats --------- total: 186483 iPad -> 125123 67.10% iPhone -> 59097 31.69% iPod -> 2263 01.21% +======================+ | big pile of commands | +======================+ tail -n 2623000 /usr/local/nginx/logs/serverlist.log | grep "GET /list" > serverlist_10days.log wc -l serverlist_10days.log cat serverlist_10days.log | awk '{ if($1 !~ ":") print $0 }' | wc -l cat serverlist_10days.log | awk '{ if($1 ~ ":") print $0 }' | wc -l ## cat serverlist_10days.log | egrep "(Mozilla|Opera)" | wc -l cat serverlist_10days.log | egrep -v "(Mozilla|Opera)" | wc -l cat serverlist_10days.log | egrep -v "(Mozilla|Opera)" > game.log wc -l game.log ## cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.15" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.14" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.13" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.12" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/gUnknown" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.11" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.10" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest[/ ]0\.4\.9" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest 0\.4\.8" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^(Minetest|-)\"" | wc -l # cat game.log | cut -d '"' -f 6-7 | egrep "^MultiCraft/" | cut -d " " -f 1 | \ cut -d "-" -f 1 | sort | uniq -c | sort -n cat game.log | cut -d '"' -f 6-7 | egrep -v "^(Minetest|MultiCraft)" | \ cut -d "/" -f 1 | sort | uniq -c | sort -n # python3 -c 'import sys;print(sum(int(l.strip().split(" ")[0])for l in sys.stdin))' calc.exe cat game.log | cut -d '"' -f 6-7 | egrep "\(\S+ \S+\)\"" > newer.log cat newer.log | cut -d '(' -f 2 | cut -d ')' -f 1 | sed -re 's/i(Phone[6-9],[0-9]|Pad[4-6],[0-9]|Pod7,1)/aarch64/' | sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l/' > archs.log wc -l newer.log # cat archs.log | egrep "(x86|i[3-6]86)$" | wc -l cat archs.log | egrep "(x86_64|amd64)$" | wc -l cat archs.log | egrep "armv[67]l?$" | wc -l cat archs.log | egrep "(aarch64|armv8l)$" | wc -l cat archs.log | egrep -v "(x86|i[3-6]86|x86_64|amd64|armv[67]l?|aarch64|armv8l)$" | wc -l ## calc.exe ## cat newer.log | cut '-d(' -f2 | cut '-d/' -f1 | sort | uniq -c | sort -n calc.exe cat newer.log | cut '-d(' -f2 | grep "Linux" | cut '-d/' -f2 | cut '-d ' -f1 | sort -n | head -n1 cat newer.log | cut '-d(' -f2 | grep "Linux" | cut '-d/' -f2 | cut '-d ' -f1 | sort -rn | head -n1 cat newer.log | cut '-d(' -f2 | grep "Linux" | cut '-d/' -f2 | cut '-d ' -f1 | sort | uniq -c | sort -rn | head -n5 cat newer.log | cut '-d(' -f2 | grep "Windows" | cut -d '/' -f2 | cut -d ' ' -f1 > winvers.log # cat winvers.log | egrep "^(6\.2|10\.0)" | wc -l cat winvers.log | grep "^6\.1" | wc -l cat winvers.log | grep "^6\.0" | wc -l cat winvers.log | grep "^5\.[12]" | wc -l cat winvers.log | egrep -v "^(5\.[12]|6\.[0-2]|10\.0)" | wc -l cat newer.log | cut -d '(' -f 2 | cut -d ')' -f 1 | \ sed -re 's/i(Phone[6-9],[0-9]|Pad[4-6],[0-9]|Pod7,1)/aarch64_apple/' | \ sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l_apple/' | \ egrep "(armv[67]l?|aarch64|armv8l)" > mobile.log # cat mobile.log | grep -v "_apple" | wc -l cat mobile.log | grep "_apple" | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | egrep "i(Phone|Pad|Pod)[0-9],[0-9]" | grep iPhone | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | egrep "i(Phone|Pad|Pod)[0-9],[0-9]" | grep iPad | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | egrep "i(Phone|Pad|Pod)[0-9],[0-9]" | grep iPod | wc -l