I named it enjen because I wanted an engine.

Back then a domain still felt like a real commitment, so I bought exactly one and decided everything I made would live inside it. enjen.net was going to be the engine that ran a whole fleet of little apps — an ASN blocklist generator at /asn-blocklist/, an IP-info tool at /ip/, a network-size calculator at /netsize/, and however many more ideas I hadn't had yet. One domain, one engine, everything under it.

Today I'm powering it down.

That's less sad than it sounds. The engine over-delivered on the one job an engine actually has — it got things running. What it didn't do was stay the shape I pictured, and the reason it drifted is the whole story.


One domain was the plan. Then domains got cheap.

The plan held right up until a domain stopped feeling precious. Once I could register a name on a whim, every app that turned out to be any good started to feel cramped sharing a path with a pile of ideas that never shipped. Something people actually rely on deserves its own front door, not enjen.net/the-good-one.

So they moved out, one at a time. The ASN blocklist grew up into a real ASN and prefix lookup and got its own place at asn.ipinfo.app. The IP tool became my.ipinfo.app. The rest either folded into those or quietly died in a branch somewhere.

Every move left enjen a little emptier, until it wasn't running a fleet of anything. Alas, I later redirected most of those resources to asn.ipinfo.app.

The flagship did fine on its own

The blocklist — the one thing on enjen that people genuinely used — didn't just move, it got rebuilt twice and is in better shape now than it's ever been. I wrote up the full arc separately, but the part I still can't quite believe is where it turned up: someone wired it into ASUS router firmware, game-server admins built ban lists off it, and The Cutting Room Floor leaned on it while getting DDoSed. I built the thing to get myself out of hand-maintaining IP lists, and it ended up in strangers' firewalls. That's the good stuff.

These days asn.ipinfo.app pulls live data from Atlas instead of the scraper I used to babysit, does real per-IP and per-prefix investigation, and hands you a block list in whatever dialect your firewall speaks — iptables, ipset, nginx, Cisco, Juniper, take your pick — generated on demand. None of that was ever going to fit under enjen.net/asn-blocklist/, and it shouldn't have had to.

I'm keeping the domain, though. enjen is a good short name, and an engine can always be rebuilt to run something new. Maybe next time it earns the name.

If you bookmarked an enjen.net/asn-blocklist/ URL, or baked one into a firewall or a cron job, you don't need to go hunting through the docs. Paste it below and I'll hand you the modern asn.ipinfo.app equivalent — the same mapping the old redirect used, run right here in your browser.

Try it — e.g. enjen.net/asn-blocklist/?asn=13335&api=1&type=iptables or just AS13335.

Same mapping the old engine always used: ?asn= becomes /AS…, &api=1&type=iptables becomes a direct /api/download/iptables/AS… you can point a cron job at, and the IP tools now live at my.ipinfo.app.

Signing off

Thanks to everyone who ever pointed a firewall at enjen.net — especially whoever put it in an ASUS router. The engine's going quiet, but everything it ran is still out there, faster and better fed, each in a home of its own now. If you were around for the /asn-blocklist/ days: it's asn.ipinfo.app these days, and it grew up well.