MultiPing Mehuge
winget install --id=Mehuge.MultiPing -e Comprehensive network latency monitoring
winget install --id=Mehuge.MultiPing -e Comprehensive network latency monitoring
winget install -e --id Mehuge.MultiPing
Or download from releases
Note, winget may lag behind the current release as it can take a while to be approved.
MultiPing is a cross-platform desktop application for monitoring network latency and tracing routes. Built with Avalonia, it provides live tables, statistics, and latency plots for both individual network paths and multiple destinations.
The application has two monitoring modes:
PlotPing traces one destination and displays latency and packet loss for every discovered hop.

MultiPing monitors several hosts or IP addresses concurrently and can show a traceroute for the selected destination.

To run a published self-contained build:
To build the application from source:
Probing uses ICMP. Firewalls, routers, or destination hosts may block or rate-limit ICMP traffic even when the network is otherwise available.
Run MultiPing.exe from a release. If no command-line mode is supplied, MultiPing starts in PlotPing mode.
The executable also accepts an explicit mode:
.\MultiPing.exe --mode plotping
.\MultiPing.exe --mode multiping
Use File > New PlotPing Window or File > New MultiPing Window to open another independent monitoring window.
PlotPing monitors the route to one hostname or IP address.
The panel on the right displays the latency profile across the current traceroute. The charts below show latency history for selected hops.
An asterisk (*) represents a hop that did not return a usable response before the probe timeout. This can be caused by ICMP filtering and does not necessarily mean that the destination is offline.
MultiPing monitors a list of destinations in parallel.
Each destination is measured with a direct ICMP echo request. Added and removed targets are saved automatically.
The toolbar in each monitoring window provides:
Ping while a round is active or counts down to the next round.Scrolling changes only the displayed time range. It does not discard collected samples.
Open Options > Options to configure application-wide and traceroute settings.
| Setting | Purpose | Default |
|---|---|---|
| Ping Interval | Time between complete probe rounds | 5 seconds |
| Plot Window | Default visible chart history | 30 minutes |
| Probe Timeout | Maximum wait for an individual ICMP response | 2000 ms |
| Setting | Purpose | Default |
|---|---|---|
| Max Hops (TTL) | Maximum TTL to probe | 30 |
| Look Ahead Limit | Number of additional TTLs to probe when a route is incomplete or changes | 3 |
After the destination is found, later rounds probe the known route instead of repeating the full TTL range. Look-ahead probing helps detect route changes or a destination beyond the previously responding hop.
Settings are saved automatically. Targets, the PlotPing target, recent hosts, and window preferences are restored when the application starts.
When logging is enabled while monitoring is running, MultiPing creates a new timestamped, fixed-width text file:
plotping_YYYYMMDD_HHMMSS.logmultiping_YYYYMMDD_HHMMSS.logBy default, logs are written to:
%APPDATA%\MultiPing\logs
Each completed probe round appends one line for every monitored row. Columns include:
Timestamp Hop/Dest IP Address RTT Min Max Avg PL%
Stopping monitoring or disabling Log to disk closes the active file. Use File > Open Log Folder to open the configured log directory.
MultiPing stores its settings under the current user's application-data directory:
%APPDATA%\MultiPing\config.json
The JSON file contains targets, probe settings, traceroute settings, logging preferences, and up to 15 recently used hosts. If the file is missing or unreadable, built-in defaults are used.
Restore dependencies and build the debug configuration:
dotnet restore MultiPing.csproj
dotnet build MultiPing.csproj -c Debug
Run a specific mode directly from the source tree:
dotnet run --project MultiPing.csproj -- --mode plotping
dotnet run --project MultiPing.csproj -- --mode multiping
Publish a self-contained Windows x64 executable:
dotnet publish MultiPing.csproj `
-c Release `
-r win-x64 `
--self-contained true `
-p:PublishSingleFile=true `
-p:IncludeNativeLibrariesForSelfExtract=true `
-p:EnableCompressionInSingleFile=true `
-o .\publish
The resulting executable is located at .\publish\MultiPing.exe.
macOS packages are built on macOS so that the script can generate a native .icns icon and, when credentials are available, sign and notarize the bundle. Install the .NET 10 SDK on the Mac, then run:
dotnet restore MultiPing.csproj
npm run build:macos:x64 # Intel Macs
npm run build:macos:arm64 # Apple Silicon Macs
Create an unsigned development/test .app bundle:
npm run package:macos:x64
# or
npm run package:macos:arm64
The bundle is written to:
bin/Release/net10.0/osx-x64/publish/MultiPing.app
bin/Release/net10.0/osx-arm64/publish/MultiPing.app
Open the .app bundle directly, or launch it from Terminal:
open bin/Release/net10.0/osx-arm64/publish/MultiPing.app
An unsigned development bundle may be blocked by Gatekeeper. To test it without a Developer ID, right-click the .app, select Open, and confirm the prompt. Signing and notarization are required for normal distribution outside the development machine.
For a Developer ID release, create an Apple notary keychain profile first, then run:
CODESIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
npm run package:macos:arm64:notarized
The notarized script signs the bundle with the hardened runtime, submits it to Apple's notary service, and staples the ticket. Replace the example RID with osx-x64 when packaging an Intel release.
System.Net.NetworkInformation.PingICMP may be blocked by a local firewall, intermediate router, or destination. Verify that ICMP echo traffic is permitted and try a destination known to respond to ping.
Some routers and hosts intentionally drop or deprioritize ICMP packets. Compare several destinations and inspect whether loss occurs at one particular hop.
Check DNS resolution and network connectivity. MultiPing prefers an IPv4 address when a hostname resolves to multiple address families.
Enable Log to disk and ensure monitoring has completed at least one probe round. Check Options > Logging for a custom directory or permission issue.
MultiPing is released under the MIT License.