This scans for MineCraft servers... really really fast! but this scans even faster
- Clone this repository somewhere.
- Run
npm installfrom within this directory.
You can get help through our Discord server
Run node ./scanner.js [options] --ip <ip range>
node ./scanner.js --ip 192.168.1.0/24 --port 25565-25569 --show-desc --min-players 1 --max-players 100 --out report.csv
node ./scanner.js --ip 192.168.1.0/24 --port 25565-25569 --show-desc --min-players 1 --max-players 100 --version '1.8.*' --out 1.8.x-servers.csv
node ./scanner.js --ip 192.168.1.0/24 --port 25565-25569 --show-desc --min-players 1 --max-players 100 --version '*forge*' --out forge-servers.csv
--ip <ip>- IP Address or Range of IP Addresses with CIDR notation (eg- 192.168.1.0/24)--port <ports>- Ports to look for minecraft servers on. (Default:25565-25566)--min-players <count>- Minimum number of players.--max-players <count>- Maximum player count.--version <glob expression>- Glob expression to filter version (eg-1.19.*, or1.1*.*). (Default:*)--conc <howmany>- How many concurrent connections to use for scanning. (Default is 256)
--show-desc- Enable showing of server description in output.--quiet- Silence terminal output.
--out <filename>- Output to CSV file (Can be opened as a spreadsheet in MS Office, Google Docs, etc.)--format <csv|txt|txt-connect-only>- Output format (txt-connect-onlyforip:portlist format)--log-desc- Output server discription to output file.
--geo-ip- Use IP Geolocation database.--geo-coords- Add geo-coordinates to output.--maxmind-key- Provide a key for maxmind database download.
# time node ./scanner.js --ip 135.148.60.0/24 --show-desc --quiet --out example.csv
Scanning ports 25565-25566 on 135.148.60.0/24
Scan finished!
real 0m3.183s
user 0m0.825s
sys 0m0.334s
# cat example.csv | wc -l
85
In this example it took 3.183 seconds to scan 255 IP addresses, and find 85 MineCraft servers. At this speed, a full /16 (123.45.0.0 - 123.45.255.255) will take about 13.5 minutes to scan.
- Fails to scan more than a /10 without kicking the bucket... so you should probably stick to that or smaller ranges.
- Working on a Minecraft bot client... doesn't work though... you can see how badly it doesn't work by using
--enable-clientflag... it is totally broken. Don't use it. - Above limitations are solved by running BBCrawler instead but that is more complex than most people will want.