This scans for MineCraft servers... really really fast!
- Clone this repository somewhere.
- Run
npm install
from within this directory.
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-only
forip:port
list 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-client
flag... it is totally broken. Don't use it.