pingtrace is a terminal-first CLI designed for rapid network troubleshooting, combining ping and traceroute with a clear, intuitive output enriched by DNS and ipinfo.io data.
It runs ping and traceroute in a single command against:
- Single target: Quick check for a single host.
- Multi-target: Separate multiple targets with commas for simultaneous checks.
- Bulk loading: Import target lists directly from CSV files.
- CIDR blocks: Automatically check against IPv4 CIDR blocks.
The focus is simple: fast input, clear output, and optional CSV export.
npm install -g pingtrace
pingtrace --helpRun both ping and trace against one host:
pingtrace 8.8.8.8Run with detailed verbose tables:
pingtrace 8.8.8.8 -vRun against multiple targets:
pingtrace 8.8.8.8,1.1.1.1,example.comRun against a CIDR:
pingtrace 10.0.0.0/30Run from CSV:
pingtrace --file ./targets.csvExport to CSV in the current working directory:
pingtrace 8.8.8.8 --exportExport to a specific directory:
pingtrace 8.8.8.8 --export ./reportsWhen export is enabled, pingtrace writes separate files per operation:
ping_UTCdate(YYYY-MM-DD-HH-MM-SS).csvtrace_UTCdate(YYYY-MM-DD-HH-MM-SS).csv
Run only ping:
pingtrace 8.8.8.8 --no-traceRun only trace:
pingtrace 8.8.8.8 --no-pingOpen the interactive editor:
pingtrace configList current values:
pingtrace config listSet a single value directly:
pingtrace config set ping.packetCount 3Examples for DNS server target 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/30If providers.ipinfoToken is configured, verbose mode also enriches public IP rows with ipinfo metadata.
Verbose output renders ping first and trace second, with separate tables for a clearer view.
Supported config keys:
dns.privateServersdns.publicServersproviders.ipinfoTokenproviders.peeringdbEnabledping.packetSizeping.packetCountping.timeoutSecondstrace.maxHopstrace.timeoutSecondstrace.numericOnly
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 resetpingtracedepends on systempingandtraceroutetooling being available onPATH.- On Windows,
tracertis used. - On Unix-like systems,
tracerouteis used, withtracepathas a fallback where available. --exportwithout a path writes operation-specific CSV files in the current working directory.- If
--exportpoints to a.csvfile path,pingtraceuses that file's directory and still writes separateping_...csvandtrace_...csvfiles.
If it saves you time from a troubleshooting session, it was worth building. Star the project and if you want invite me for a coffe or a snack for my buddy Schnauzer Tyson.
