What it does
Traces the network path between a source and a target host, and shows you exactly where your data is processed:
- ๐ฅ๏ธ Server-side mode runs a real, hop-by-hop
traceroute(ortracerton Windows) from the PiliBox server, showing every router along the path from the server to the target. - ๐ป Client-side mode measures round-trip latency directly from your browser to the target. Browsers cannot set packet TTLs or read ICMP responses, so a byte-for-byte traceroute isn't possible from JavaScript โ instead this mode reports honest end-to-end timing statistics (min/avg/max over several probes) measured from your network connection.
- ๐ Compare both runs both at once, side by side, so you can see the difference between the path as seen by the server vs. the raw latency as seen by your own device.
Try it
How it works
Server-side mode
- Your browser sends the target host to
/api/tools/traceroute. - The server (
tools/traceroute/server.js) runs the operating system's native traceroute utility (tracerton Windows,tracerouteon Linux/macOS) against the target, with a capped number of hops and a timeout per hop. - The full hop-by-hop output (each router IP/hostname and round-trip time) is streamed back and displayed as-is.
Client-side mode
- Your browser sends several timed
fetch()requests directly to the target host (no server involved at all for this part). - It measures the round-trip time of each request using the browser's
performanceAPI and computes min/avg/max latency. - Because of browser sandboxing (no raw sockets, no ICMP, no custom TTL), this cannot show intermediate routers โ only the final, end-to-end latency as experienced by your own device and network, which is honestly labeled as such rather than faked.
Compare both
Runs both modes and displays them side by side, making it easy to spot differences caused by your local network/ISP versus the path from the server's data center.
Notes
- Server-side traceroute requires the
tracert/traceroutebinary to be available on the host running PiliBox. If it's missing, the tool reports a clear error instead of failing silently. - Client-side latency probing is subject to CORS: if the target site blocks cross-origin requests, the browser may only be able to measure the time to fail/reject, which is still reported honestly.
- Only hostnames and IP addresses are accepted โ no shell metacharacters or URLs with paths/query strings.