About

Network tools for checking your own connection, and any site from around the world.

Privacy

We don't store anything about you. No IP addresses, no record of what you looked up, no cookies, no trackers.

We do keep daily counts: requests to each page, which countries they came from and which pages each country used, IPv4 versus IPv6, and whether the client was a browser, curl or something else. Unique visitors are counted with a key that lives in memory and is replaced every day, so only the totals are saved.

The site runs behind Cloudflare, which is where the country on the front page comes from. /headers hides the headers that Cloudflare and our web server add. Cloudflare also rewrites accept-encoding before the request reaches us, and we can't undo that.

The front page map shows roughly where you are, to within about 100 km. The lookup runs on our own server, and the result isn't saved or sent anywhere.

Checks

/check has our probes in nine regions (the dots on the map) look up a hostname, connect on port 443 or 80, and send a single HEAD / request. Nothing else is fetched, and no page content is kept. Results are cached for a minute.

Probe requests identify themselves as ipq.sh-check/1 (+https://ipq.sh/about). Hostnames that resolve to private or reserved addresses are refused, and checks are rate-limited per visitor and per target.

Traces

/trace runs a traceroute from all nine regions: UDP packets with rising TTLs sent to a high port, plus the ICMP replies that routers send back. "Trace to me" traces your own address. It goes only to our probes, for that one trace, and is never cached or saved. Hostname traces work like checks and are cached for a minute.

Hops are placed on the map with a GeoIP database on our own server. If a hop's round-trip time makes a location impossible, that hop is left off the map.

Pings, DNS and ports

/ping sends five pings from each region. "Ping me" is handled the same way as "Trace to me". /dns asks each region's resolver for a record and shows what came back. /port tries TCP connections to your own address. It can't be pointed at anyone else, and other websites can't trigger it from your browser.

Addresses on Spamhaus DROP or hagezi's Threat Intelligence Feed can't use the tools that send traffic (checks, traces, pings, DNS and ports). The rest of the site still works for them. Each region will also trace or ping any one address at most 30 times a minute, and check it at most 120 times, no matter how many hostnames point to it.

/geo looks up an address in DB-IP's free Lite databases, kept on our server. Hostnames are resolved first, and reverse DNS is checked in both directions. Lookups aren't saved.

Heartbeats

/heartbeat alerts you when a scheduled job stops checking in. For each check we store its name, its schedule, where to send alerts (an ntfy topic or a webhook) and the time and type of its last 20 pings. We keep nothing about the sender: no address, user agent or body.

There are no accounts. Your manage link is the key, and we only store a hash of it. A check that goes 30 days without a ping (7 if it never got one) is deleted after one final alert. Alerts only go to public addresses on ports 80 and 443, sent as ipq.sh-heartbeat/1.

Internet health

/health watches a fixed set of big services: Cloudflare, Google, AWS, Microsoft, Akamai, Fastly, GitHub and Wikipedia. Every five minutes, each region sends each of them a HEAD / request, with the same user agent as a check. Sites people check are never included.

Each row tests one website, so it really shows the network that site runs on. aws.amazon.com is served by CloudFront and www.microsoft.com by Akamai, so those rows tell you nothing about AWS regions, Azure or Microsoft 365. The Fastly row uses raw.githubusercontent.com because every Fastly location serves it from cache. Fastly's own homepage often waits on its origin server.

Two rows are our own. cf-edge.ipq.sh and fastly-edge.ipq.sh return an empty 204 straight from the CDN, with no server behind them, so they measure the CDN alone.

The Official column comes from each service's status page (cloudflarestatus.com, akamaistatus.com, githubstatus.com and wikimediastatus.net), read once per sweep as ipq.sh-health/1. Incidents appear in the services' own words and don't change our verdict.

Abuse

We don't host user content or redirect anywhere. Report problems to abuse@ipq.sh.

Map

The maps use land from Natural Earth (public domain, via world-atlas) and undersea cables from TeleGeography's Submarine Cable Map, © TeleGeography, CC BY-NC-SA 3.0. The simplified copy served here is shared under the same license. Moon positions use formulas from SunCalc by Vladimir Agafonkin (BSD-2-Clause).

Locations for trace hops, check results, your rough position and /geo come from IP Geolocation by DB-IP, under CC BY 4.0. The maps are drawn in your browser.