What it does
Paste what a host printed for its routing table and the tool reads it for you. It recognises four printouts: Linux iproute2 (ip route, ip route show table all, ip -6 route, ip -d route), Linux net-tools (netstat -rn and route -n, the "Kernel IP routing table"), BSD and macOS netstat -rn ("Routing tables", "Internet:", "Internet6:"), and Windows route print with its IPv4 and IPv6 tables, Active and Persistent. Every route becomes one row of the same table (destination prefix, next hop, interface, metric, type, table) and each row opens into a field-by-field reading in plain language. The tool then lists the default routes of every table and says which one wins, and a second box answers "which route does this destination use?" by the router's rules. Nothing leaves the browser, and no route is changed or queried.
What each field means
The readings come from the manuals of the commands, read on 2026-10-19.
- iproute2. The destination comes first;
defaultis "equivalent to IP 0/0 or to IPv6 ::/0", and a bare address is a host route because "If the length of the prefix is missing, ip assumes a full-length host route" (ip-route(8)). Then comevia(the next-hop router),dev(the output device),proto(kernel, boot, static, ra and redirect have fixed meanings; any other tag is not interpreted by the kernel, rtnetlink(7)),scope(host, link, global),src(the preferred source address),metric("routes with lower values are preferred"),table, the next-hop flagonlink, and options such aspref,mtuandnhid. A leading type word says what the route does: unicast forwards, local and broadcast belong to the host's own table, and blackhole, unreachable, prohibit and throw do not forward. Indentednexthoplines are attached to the route above as its multipath hops, with theirweight. - net-tools. Destination plus Genmask is the prefix ("'0.0.0.0' for the default route"), Gateway is "The gateway address or '*' if none set", and the Flags letters are those route(8) lists under OUTPUT: U up, H host, G use gateway, R, D, M, A, C and ! for reject.
route -nprints Metric, Ref and Use;netstat -rnprints MSS, Window and irtt instead. - BSD and macOS. The Flags letters are decoded from FreeBSD netstat(1) (U, G, H, S, B, b, D, L, M, R, X, 1, 2, 3) and from Apple's netstat.1, which adds C, c, I, i, m, r, W, Y and g; a letter that only macOS lists is marked as such. A
link#Ngateway is a direct route, and a gateway such as0:e0:b5:36:cf:4fis a link-layer address. These printouts carry no metric. - Windows. Active Routes are the routes in use; Persistent Routes are stored configuration (Microsoft Learn, KB 2966111). In the IPv4 table, Netmask gives the prefix length, Gateway is a next-hop address or
On-link, Interface is the address of the local adapter, and among routes to the same destination "the route with the lowest metric is selected" (Microsoft Learn, The IP routing table). In the IPv6 table, If is an interface number from the Interface List; a gateway that wraps onto the next line is joined to its row.
Anything the tool does not understand is shown, never dropped: a token it cannot read stays on its route under "Not understood", and a line that is neither a route nor known structure (headers, rulers, section titles, an echoed $ ip route prompt) is listed with its line number.
Default routes and the lookup
A default route is a route of prefix length zero. When a table holds several, they have the same length, so the metric decides and the lowest wins; the tool names the winner, or says why it cannot (equal metrics, or a printout with no comparable metric, such as BSD netstat or Windows Persistent Routes reading Default).
The lookup applies the pruning rules of RFC 1812, section 5.2.4.3: basic match keeps the routes whose prefix contains the destination, longest match keeps the longest of them, and among equal lengths the lowest metric wins. It shows the candidates, the survivors and the rule that decided. For iproute2 it reads the tables in the order of the three default policy rules, local, then main, then default (ip-rule(8)); any other table, such as a table 100, is listed as not consulted, since only a policy rule of its own would reach it. A winning throw route sends the lookup on to the next table, as ip-route(8) describes. On Windows only Active Routes are consulted. Routes whose destination is not an address with a length (a name printed without -n, an abbreviation, a redacted value) are listed as left out.
Things it cannot know
ip route show table 100prints notableword on its lines, so a pasted listing of one table is read as table main, the listing default.- iproute2 prints no metric when it is zero: in the capture behind the examples,
route -nshowed Metric 0 for a route thatip routeprinted without one, and the tool compares such a route as metric 0. - The Linux net-tools "Kernel IPv6 routing table" is kept as not understood, because route(8) documents the IPv4 columns only; paste
ip -6 routeinstead. - Policy rules other than the three defaults are not in a routing table printout, so the tool cannot follow them.
Examples
The Example button loads a real ip route show captured on 2026-10-19 on a host at 192.0.2.2 and asks about 192.0.2.77: the default 0.0.0.0/0 and the connected 192.0.2.0/24 both contain it, and the /24 wins by longest match, so the packet is delivered on-link on eth0. The golden vectors add the same host's ip route show table all (where 192.0.2.200 is inside a /25 of table 100, but no rule reaches table 100 and main's /24 delivers it), its ip -d route show table 100 (two defaults with metrics 100 and 200, and blackhole, unreachable, prohibit and throw routes), its netstat -rn and route -n, FRRouting's sixteen-way multipath example, a Windows 10 route print (ff02::1 matches two ff00::/8 routes and metric 331 beats 5256), Microsoft's persistent-routes example, and the FreeBSD Handbook's netstat -nr and netstat -r tables.
API
The same engine answers the /api/v1/routing-table-explainer operation of the site's HTTP API, written out field by field in the OpenAPI contract on the API page, with examples taken from the golden vectors. The contract also says whether this site serves the API.
- Request. Either the printout as text, which is parsed only, or a JSON object
{"text": "<the printout>", "lookup": "<an IPv4 or IPv6 address>"}, which is parsed and then looked up. - Response.
parseholdsformat(iproute2,netstat-linux,netstat-bsd,windowsorunknown),routes(each withindex,line,raw,section,family,destination,prefix,prefixLength,isDefault,type,gateway,onLink,interface,metric,metricText,protocol,scope,src,flags,nhFlags,nexthops,attributes,unparsedandnotes),interfaces(the Windows Interface List),defaults(per table:section,consulted,candidates,winnerandreason),unparsedLines,structureLines,lineCountandwarnings.lookupis null, or holdsdestination,family,stages(each withsection,candidates,longest,survivors,winner,outcomeanddecidedBy),skipped,unusable,winner,actionanddecidedBy. For the example capture with the lookup 192.0.2.77 the answer is the route atindex1 (192.0.2.0/24, shown as #2 on the page), actionon-link, decided bylongest-prefix. - Errors. HTTP 400,
invalid_input, with the engine's message: a lookup that is not one IPv4 or IPv6 address, or a request that starts with{but is not the JSON object above. Text that is not a routing table is not refused:formatisunknownand the lines are listed as not understood.
Sources
- ip-route(8), Linux manual page, iproute2, man7.org copy of 4 August 2026 (read 2026-10-19): SYNOPSIS and DESCRIPTION
- ip-rule(8), Linux manual page, iproute2 (read 2026-10-19): the three default rules
- rtnetlink(7), Linux manual page, man-pages 6.19 (read 2026-10-19): rtm_type, rtm_protocol and rtm_scope
- route(8), Linux manual page, net-tools (read 2026-10-19): OUTPUT
- netstat(8), Linux manual page, net-tools (read 2026-10-19): --route
- netstat(1), FreeBSD 15.1, 7 April 2026 (read 2026-10-19): the -r letter table
- Apple, network_cmds, netstat.tproj/netstat.1 (read 2026-10-19): the letter table
- FreeBSD Handbook, Advanced Networking, 35.2 Gateways and Routes (read 2026-10-19)
- Microsoft Learn, Windows commands, route (read 2026-10-19)
- Microsoft Learn, The IP routing table (Windows Server 2003) (read 2026-10-19)
- Microsoft Learn, KB 2966111, persistent routes (read 2026-10-19)
- RFC 1812, Requirements for IP Version 4 Routers, June 1995 (read 2026-10-19): section 5.2.4.3