Profile portrait
Tia Zanella
SKHELL

Posted Mar 14, 2026

pingtrace: Fast Network Troubleshooting & Evidence Capture

A terminal-first CLI designed for rapid network operations, combining ping and traceroute with clear, intuitive outputs enriched by DNS and GeoIP data.

During an incident, the last thing you want is to manually run ping, wait, run traceroute, wait again, copy the output, lookup the ASN, and paste it all into a ticket. I built pingtrace to solve this operational friction.

It runs ping and traceroute in a single command against:

  1. Single target: Quick validation check for a single host.
  2. Multi-target: Separate multiple targets with commas for simultaneous checks.
  3. Bulk loading: Import target lists directly from CSV files.
  4. CIDR blocks: Automatically resolve and scan entire IPv4 CIDR blocks.

The focus is simple: fast inputs, clean visual outputs, and optional CSV export for documentation.


Install

npm install -g pingtrace
pingtrace --help

Quick start

Run both ping and trace against a single host:

pingtrace 8.8.8.8

Run with detailed verbose tables (resolving ASNs and ISP info):

pingtrace 8.8.8.8 -v

Run against multiple targets simultaneously:

pingtrace 8.8.8.8,1.1.1.1,example.com

Scan a CIDR block:

pingtrace 10.0.0.0/30

Load targets from a CSV file:

pingtrace --file ./targets.csv

Export results to CSV in the current working directory:

pingtrace 8.8.8.8 --export

Export to a specific directory:

pingtrace 8.8.8.8 --export ./reports

When export is enabled, the CLI writes separate files per operation:

  • ping_UTCdate(YYYY-MM-DD-HH-MM-SS).csv
  • trace_UTCdate(YYYY-MM-DD-HH-MM-SS).csv

Run only ping:

pingtrace 8.8.8.8 --no-trace

Run only trace:

pingtrace 8.8.8.8 --no-ping

Configuration

Open the interactive configuration editor:

pingtrace config

List all current configuration values:

pingtrace config list

Set a configuration value directly:

pingtrace config set ping.packetCount 3

Set target DNS server lists:

pingtrace config set dns.publicServers 8.8.8.8
pingtrace config set dns.publicServers 8.8.8.8,1.1.1.1
pingtrace config set dns.privateServers 10.0.0.0/30

If providers.ipinfoToken is configured, verbose mode automatically enriches public IP hops with GeoIP and ISP metadata.

Supported configuration keys:

  • dns.privateServers
  • dns.publicServers
  • providers.ipinfoToken
  • providers.peeringDBEnabled
  • ping.packetSize
  • ping.packetCount
  • ping.timeoutSeconds
  • trace.maxHops
  • trace.timeoutSeconds
  • trace.numericOnly

Command cheatsheet

pingtrace help
pingtrace --version
pingtrace <target-or-targets-or-cidr>
pingtrace --file <path>
pingtrace <target> -v
pingtrace config
pingtrace config set <key> <value>
pingtrace config get <key>
pingtrace config list
pingtrace config reset

Operational notes

  • Tool Dependencies: pingtrace depends on system ping and traceroute binary tools being available in your system PATH.
  • OS Compatibility: On Windows, tracert is used under the hood. On Unix-like systems, traceroute is used (with tracepath as a fallback where available).
  • Export Logic: Running --export without a path generates CSV files in the current working directory. If a file path is provided, the tool uses that file’s parent directory.

Feedback

If this tool saves you time during a late-night troubleshooting session, it was worth building.

Star the project on GitHub, and if you find it useful, invite me for a coffee or buy a treat for my buddy Schnauzer Tyson!

menu
home
fingerprint
rocket
newsstand