Skip to content
jc-rs
GitHub

traceroute

--traceroutev1.9.0

Converts `traceroute` and `traceroute6` command output to JSON

LinuxmacOSFreeBSDcommand
$ traceroute | jc-rs --traceroute

A real pair

From the reference corpus (osx-10.14.6/traceroute-no-header.json). The left pane is the input the fixture ships; the right pane is the corpus's expected JSON. CI compares jc-rs with it field by field under the published differential. Hover a value to see where it came from.

tracerouteosx-10.14.6
 1  dsldevice (192.168.1.254)  11.415 ms  3.934 ms  3.286 ms
 2  76-220-24-1.lightspeed.sntcca.sbcglobal.net (76.220.24.1)  24.174 ms  20.817 ms  27.771 ms
 3  * * *
expected outputjson
Use the Left and Right arrow keys to highlight the matching value in the input.
{
  "destination_ip": null,
  "destination_name": null,
  "max_hops": null,
  "data_bytes": null,
  "hops": [
    {
      "hop": 1,
      "probes": [
        {
          "annotation": null,
          "asn": null,
          "ip": "192.168.1.254",
          "name": "dsldevice",
          "rtt": 11.415
        },
        {
          "annotation": null,
          "asn": null,
          "ip": "192.168.1.254",
          "name": "dsldevice",
          "rtt": 3.934
        },
        {
          "annotation": null,
          "asn": null,
          "ip": "192.168.1.254",
          "name": "dsldevice",
          "rtt": 3.286
        }
      ]
    },
    {
      "hop": 2,
      "probes": [
        {
          "annotation": null,
          "asn": null,
          "ip": "76.220.24.1",
          "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net",
          "rtt": 24.174
        },
        {
          "annotation": null,
          "asn": null,
          "ip": "76.220.24.1",
          "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net",
          "rtt": 20.817
        },
        {
          "annotation": null,
          "asn": null,
          "ip": "76.220.24.1",
          "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net",
          "rtt": 27.771
        }
      ]
    },
    {
      "hop": 3,
      "probes": []
    }
  ]
}

Fixture coverage

11/11oracle-valid pairs match under the published structural JSON comparison

Magic syntax

jc-rs traceroutejc-rs runs the command itself and parses what it prints. Recognised for: `traceroute`, `traceroute6`

Source: crates/jc-rs-parsers/src/network/traceroute.rs. jc-rs targets the schemas defined by the original Python tool. Fixture coverage above is the measured evidence for this parser; test the inputs your pipeline depends on. Compare