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.