Skip to content

Tools

This is a collection of tools I have developed for my professional and personal use. Feel free to explore and use them.

Networking

Developer

Tools inspired by icanhazip

Major Hayden's icanhazip inspired me to create this series of tools. Each tool is simple. It displays one value, like icanhazip.com does, and it gets tens of billions of requests a day. So much so that Hayden handed the hosting over to Cloudflare because it became such a challenge to maintain.

Each of the 100 hostnames answers with one value and nothing else. They are simple, robust and fast. Add the path whoami to any of them and you get a page with all the possible values.

The code carries a probe that asks every host again and again, then checks each answer. Over 1200 requests the probe found no failure at all. Most hosts answer in about 30 milliseconds. The weather hosts and the address block hosts ask another service, so they take longer, and the page for each group says so.

The whoami page shows the request, location, network, TLS and browser sections, an interactive map, then every request header and the whole request data as JSON. It has no empty box anywhere. It ends with a link to the edge trace, which holds the few values the page cannot read for itself. The map host is nothing but the map, filling the whole screen.

Your IP address

The address the request came from. The version hosts answer only for their own version, so they are empty otherwise.

Location

Where the network thinks you are. These come from the network, not from a GPS fix, so the city and the postal code can be approximate. The region hosts give the long name, then fall back to the code.

Network

The autonomous system and the data centre that answered.

HTTP and TLS

The protocol and the TLS handshake. The bot score arrives only where bot management runs.

Browser

Read straight from the request headers. A shell client sends no Accept-Language, so the language host is empty for most command line use.

Headers and proxies

What your client sent. The headers host lists every request header as JSON. The proxy hosts list the proxy headers they find, and they answer 204 with no body when there are none, so a script can tell no proxy from an empty answer. The xff host gives the X-Forwarded-For chain, left to right, and it is empty unless something upstream sent one.

DNS

These five ask a resolver over the network, so they take longer than the other hosts. The forward check host asks for the PTR record and then tests that it points back at the same address, so it is often empty.

Address block

The allocation from the address registry. This is different data from the ASN hosts. The allocation and the announced prefix can differ, because the announced block is sometimes tighter. These seven hosts ask a public registry over the network, so they are the slowest here and the least predictable. They always answer correctly.

Time

The time of the request, in UTC. Every host here is a slice of the same clock, so they all agree with each other. The full stamp is ISO 8601, and the epoch hosts count seconds since 1970.

Weather

The weather at your coordinates. The data comes from Open-Meteo, which is free and needs no key. Each host asks for the one value it returns, and each one asks a third party over the network, so these hosts take longer than the others. They are also often empty, because the coordinates come from the network and not from a GPS fix.

Miscellaneous

Personal

Back