So.... I've made a shitty minecraft scanner. Sending packets is a lot of fun, it turns out.
This blog page will be dedicated to talking about the scanner. Several versions are up at public urls:
Naturally they're all garbage, as is most of the code I write or get gpt to write, but it works. Many ips retrieved.
Not sure what'll happen next. I think i want to make a horde by getting people to run them and turning it into a Command-And-Control sort of deal so multiple instances can be managed and told to scan different ranges based on who is already doing what range at what speed, and so on. Keep the whole Internet of a DB fresh. Idk.
Not every ip range has minecraft servers...

But sometimes they do

There will be more to come.
Maybe a database or some sort of aggregation mechanism besides a discord webhook.
06/30/25
Did some work on the scanner stuff, made a listener to accept zip files so the DB will have something to work with. Going to set up the db later. I am somewhat excited for the command-and-control functionality. Trash scripts go brrrrrrrrr.
Latest todo list:
DB
✅ Make DB parse stored zip files
❓ As they appear in the directory, checking occasionally
❓ Check time is configurable
🛠️ Make an API to interact with the DB
🤷♂️ Not sure about the details on this one.
🇮 API assumes the DB is running alongside it on localhost
❌ Administrators (api key verification) can make alterations to the DB like toggling flags like "Manually changed" "Griefed" and so on (complex task, needs brainstorming)
Scanner
✅ Scan the internet for ip addresses
✅ Save the responses to text files, then zip files
✅ Forward the zip files to an endpoint (discord webhook)
❌ Make scanners listen for callbacks/messages from the main server
❌ On first connect the scanner should ask the server for its identifying key so it can accept incoming commands later on
❌ Make the scanner act on those callbacks to queue the next range for scanning
❌ Scanner should ping the server to ask for the next range when it finishes.
❌ Scanner should be able to stop the jobs it's doing if it receives a command to do so, or start another range, etc
❌ Scanner should accept small jobs from the server to return ASAP like scanning specific ip addresses or ranges. Use case: the api can request a server to be pinged for its status.
CAC
🛠️ Begin building the cac
❌ Listen for scanners identifying themselves by api key
❌ Keep track of what IP ranges have been scanned via the next range to scan being held in memory
❌ Manage ongoing scans by accepting incoming json payloads with queries for ips to scan, scanners identifying themselves, etc.
❌ Accept api commands to interact with the scanners