ServerHunter is a high-performance, multithreaded Minecraft server scanner built for speed, precision, and data integrity.
It scans massive IPv4 ranges to discover active Minecraft: Java Edition servers and stores full status data — including MOTD, player lists, mods, and version info — directly in MongoDB.
Designed By Syzdark Announce If anyone would pls help with the development
- ⚡ Ultra-fast multithreaded scanning — up to 700 concurrent threads
- 🧠 Smart MOTD parsing — supports both plain text and JSON MOTDs
- 💾 MongoDB integration — results are stored and deduplicated automatically
- 🔍 Mod & Player detection — captures mods (FML, Forge) and online player samples
- 🛡️ Opt-out filtering — skips known “protect invalid” servers
- 📊 Live progress tracking — real-time scan speed and server discovery rate
- 🧱 Lightweight & portable — single-file deployment, runs anywhere Python 3 runs
- Python: 3.8 or higher
- MongoDB: Local or remote instance (Atlas supported)
- Dependencies:
pip install mcstatus pymongo netaddr💡 Optional performance extras:
pip install motor
All configuration values are defined at the top of dark.py:
| Variable | Description | Default |
|---|---|---|
MONGO_URI |
MongoDB connection string | Atlas URI |
DB_NAME |
Database name | mcscanner |
COLLECTION_NAME |
MongoDB collection | servers |
PORT |
Minecraft server port | 25565 |
TIMEOUT |
Socket timeout (seconds) | 0.1 |
MAX_THREADS |
Number of concurrent worker threads | 700 |
PROGRESS_EVERY |
Progress log interval (IPs) | 100 |
You can set your own MongoDB URI via environment variable:
export mcscanner="mongodb+srv://user:password@cluster.mongodb.net/?retryWrites=true&w=majority"
Run a single IP range:
python dark.py 192.168.0.1-192.168.0.255or a CIDR network:
python dark.py 192.168.0.0/24✅ MongoDB ready
🎯 Scanning 256 IPs | Target: ~10 IPs/sec
============================================================
🎉 FOUND: 192.168.0.45:25565
📝 MOTD: Welcome to ServerHunter Network!
👥 8/100 | ⚙️ 1.12.2
============================================================
📊 100/256 | Found: 12 | 12.4 IPs/s
Each discovered server is stored as a document in MongoDB:
{
"ip": "192.168.0.45",
"port": 25565,
"motd_raw": "§aWelcome to ServerHunter",
"motd_formatted": "Welcome to ServerHunter",
"players_online": 8,
"players_max": 100,
"player_list": ["Steve", "Alex"],
"mods": ["FML", "examplemod@1.0.0"],
"version_name": "1.12.2",
"last_seen": 1729272036.882
}- Run on a high-bandwidth connection (≥100 Mbps recommended)
- Use a MongoDB cluster for faster inserts
- Reduce
MAX_THREADSif CPU saturation occurs - Set
TIMEOUThigher (e.g.0.3) for unstable networks
ServerHunter/
├── scanner.py # Main scanner script
└── README.md # Documentation
This project is released under the BSD 2-Clause. You are free to use, modify, and distribute it.
Contributions are welcome! If you’d like to improve performance, add new data extraction logic, or integrate async scanning, feel free to open a pull request.
Created with ❤️ by Syzdark For support or collaboration, open an issue or reach out via GitHub.
