PingTestTool is a lightweight, high-performance cross-platform desktop application for network diagnostics built with C# and Avalonia UI. It provides tools for ping testing and route tracing with real-time visualization, detailed statistics, and data export capabilities.
- Configurable Settings: Set ping count (1-1000), timeout, and "Don't Fragment" flag
- Real-time Metrics: Monitor latency, TTL, and packet size for every individual request
- Statistical Analysis: Automatic calculation of Min/Max/Avg latency, Jitter, and Packet Loss percentage
- Latency Graph: Live, auto-scaling chart — opens and streams points during active sessions
- Data Export: Save session results to a text file
- Route Visualization: Visual canvas representation of network hops
- Detailed Hop Data: View IP addresses, hostnames, and packet loss statistics for each node
- Smart DNS: Asynchronous and cached DNS resolution for improved speed
- Performance Indicators: Color-coded nodes based on packet loss percentage
- Themes: Dark and Light modes with instant switching
- Localization: Full English and Russian support with hot-swap, no restart needed
- Portable: Single executable — no installer, no dependencies on target machine
Trace Route Visualization and Hop Statistics
Running from release:
- No runtime required — self-contained portable executable
Building from source:
- .NET 9.0 SDK
- Visual Studio 2022 or any IDE with C# support
Grab the latest portable binary for your platform from Releases.
On Linux, the Trace Route feature requires the ability to open raw sockets (to modify the ICMP TTL header). After downloading the Linux binary, grant the necessary network capabilities by running this command once in your terminal:
sudo setcap cap_net_raw+ep ./PingTestTool
Note: The regular Ping tab works out of the box without this command.
git clone http://github.com/diqezit/Ping.git
cd Ping
dotnet run --project PingTester.csproj
All platforms at once:
publish.bat
Outputs single portable executables to out/.
- Navigate to the Ping tab
- Enter a hostname or IP address
- Adjust Count and Timeout
- Click Start Test or press
Ctrl+Enter - Open Graph to watch RTT in real-time
- Use Export to save the log
- Navigate to the Trace Route tab
- Enter the target host
- Click Start Trace
- Monitor hops in the data grid and the visual canvas
| Component | Technology |
|---|---|
| Core Framework | .NET 9.0, C# 13 |
| UI Framework | Avalonia UI 11.2 |
| Networking | System.Net.NetworkInformation, DnsClient |
| Graphics | Custom Canvas renderer |
| Caching | Microsoft.Extensions.Caching.Memory |
| Shortcut | Action |
|---|---|
Ctrl+Enter |
Start Ping test |
Esc |
Stop current operation |
- Fork the repository
- Create a feature branch:
git checkout -b feature/YourFeature - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/YourFeature - Open a Pull Request
Distributed under the MIT License. See the LICENSE file for more information.
To report bugs or suggest improvements, open an issue at http://github.com/diqezit/Ping/issues
