PingDD is a cross-platform TCP “ping” tool written in C.
Instead of ICMP, it checks a specific TCP port and tells you whether it’s reachable, how fast the connection handshake completes, and (optionally) logs every attempt to CSV for later analysis.
This tool is designed to help network administrators and enthusiasts test the availability and responsiveness on remote servers.
Classic ping answers one question: “Can I reach this host over ICMP?”
In real-world troubleshooting, the question is usually different:
- Is the service port actually open (80/443/22/3389/etc..)?
- Is the connection slow because of latency, filtering, or handshake delays?
- Can the results be logged and compared later?
PingDD is built to solve these issues: simple feedback with clean output, and an option to keep evidence (CSV + timestamps).
- TCP port reachability check (connect-based).
- Measures connect time (RTT) in milliseconds (microsecond level precision).
- Cross-platform behavior (Windows + Linux).
- Colored terminal output (can be disabled).
- Timestamp printed in output (useful for diagnostics).
- Optional CSV logging (best for long runs and later review).
Download using Winget.
Winget installs PingDD and adds it to your PATH automatically.
winget install -e --id DarthDemono.PingDDDownload the latest binary from the GitHub Releases page:
https://github.com/darthdemono/PingDD/releases
If your OS is not available in the release list, compile from source:
git clone https://github.com/darthdemono/PingDD.git
cd PingDD
make clean
makeThen add the binary to your PATH:
pingdd <destination> -p <port> [options]
| Option | Description | Required | Default |
|---|---|---|---|
<destination> |
Target hostname or IP address | Yes | - |
-p, --port N |
Set TCP port N | Yes | - |
-t, --timeout N |
Timeout in milliseconds | No | 1000 |
-c, --count N |
Number of checks | No | infinite |
-r, --rate N |
Rate: 1 check per N ms (delay between checks) | No | 50ms |
--no-color |
Disable color output | No | Colors enabled |
--csv |
Enable CSV logging | No | Disabled |
-?, --help |
Display help | No | - |
Check port 80 a hundred times:
pingdd example.com -p 80 -c 100Slow the rate to one check every 500ms:
pingdd example.com -p 443 -r 500Enable CSV logging:
pingdd example.com -p 443 --csvWhen CSV logging is enabled, PingDD generates a timestamped filename and writes:
- DateTime
- Host
- IPAddress
- Protocol
- Port
- Time_ms
This makes it easy to graph results later, compare different networks, or keep records for debugging.
PingDD aims to keep the codebase straightforward and readable. The project leans toward predictable behavior, clean output, and portability—so changes that improve reliability and cross-platform correctness are preferred over “clever” complexity.
"An idiot admires complexity, a genius admires simplicity" - Terry A. Davis
Contributions are welcome.
- Open an issue for bugs, feature requests, or suggestions.
- Submit a pull request if you want to improve code quality, portability, documentation, or CI packaging.
MIT License. See LICENSE
