Open-source project
sn4k3/NetSonar avatar
sn4k3/NetSonar

NetSonar for cross-platform network probing and monitoring

Network pings and other utilities

1,657 stars159 forksC#AGPL-3.0

At a glance

What is it?
NetSonar is a C# desktop application for administrators and developers who need to inspect network interfaces, probe services, scan local hosts, and track latency and throughput. It combines protocol-aware checks with live charts, but the README does not document server deployment, alert routing, or unattended operations.
Who is it for?
Adopt NetSonar when an administrator or developer needs a desktop application that combines protocol-specific service probes, local network scanning, interface inspection, and live network measurements. Do not assume it is a server-side monitoring agent or an unattended observability platform, because the README does not describe such deployment or automation behavior.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What NetSonar is built to diagnose

NetSonar addresses the need to distinguish a reachable host from a healthy service. Its README specifically warns against treating an ICMP reply as proof that an application works. An ICMP probe confirms that a host answers echo requests, while a protocol-aware probe is intended to confirm that the expected service is responding correctly. That distinction matters for administrators checking whether a web endpoint, mail service, or other dependency is functioning, and for developers testing whether a service responds over the protocol their application actually uses.

The project is aimed at administrators and developers. Its feature set includes probing hosts and services, inspecting network interfaces, discovering hosts on a local network, and running internet speed tests. The documented protocol list includes ICMP, TCP, UDP, TLS, DNS, NTP, HTTP, WebSocket, SSH, SMTP, IMAP, MQTT, STUN, and SIP. The README presents this as a broad desktop toolbox rather than a single-purpose ping utility.

The interface is intended for continuous observation. A probe can have configurable intervals, timeouts, and reply history, while the response-time views provide single-service and multi-service charts. According to the README, those charts include rolling averages, percentiles, jitter, loss, failures, scaling, and selectable sample windows. This gives the project a different scope from a command that prints one latency result, although the README does not quantify measurement accuracy or reporting granularity.

How probes, scans, and measurements fit together

The documented architecture is a C# application using dotnet, with an Avalonia user interface and SukiUI styling. LiveCharts is used for real-time data visualization. Based on the repository layout, the application also includes dedicated source, test, build, and dependency areas, with build scripts at the repository root. The README does not publish the internal service abstraction, packet flow, persistence format, or concurrency model, so those details cannot be treated as confirmed behavior.

At the service level, NetSonar groups checks into host, transport, and application-protocol availability and latency. The target format depends on the selected protocol. The visible README table confirms ICMP targets such as `router.local` or `192.168.1.1`, with no port, and states that payload size, TTL, and the Don't Fragment option are configurable where the operating system supports them. For higher-level services, the intended choice is the protocol that represents the service being monitored, such as DNS, HTTP, SSH, or SMTP.

The local network scanner has a different job. The README says that it discovers hosts of a local network, lists open ports and services, records changes since the previous scan, and can import discovered items into monitoring. That means scanning is not presented as an isolated inventory report. It provides a path from discovery to configured probes.

Internet speed testing is also included. NetSonar can run manual or scheduled tests and reports latency, download, and upload results. The README does not specify the speed-test endpoints, test methodology, limits, or whether scheduled tests persist across restarts.

Installing NetSonar and making a first probe

The README provides Windows, Linux, and macOS installation paths. On Windows, the documented package-manager command is:

bash
winget install -e --id PTRTECH.NetSonar

This asks winget to install the package identified as `PTRTECH.NetSonar`. The README also provides a PowerShell installation command:

powershell
Invoke-RestMethod https://raw.githubusercontent.com/sn4k3/NetSonar/main/scripts/install-netsonar.ps1 | Invoke-Expression

That command downloads and executes the installer script directly from the repository's `main` branch. For an administrator evaluating an installation path, this distinction is relevant because the fetched script can change when that branch changes. The README does not provide a checksum or a pinned release URL for this method.

Linux and macOS use the same shell script path. The Linux instructions first ensure that `curl` is installed through whichever supported package manager is present, then execute the installer:

bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/sn4k3/NetSonar/main/scripts/install-netsonar.sh)"

The macOS instructions use the same command. After installation, open NetSonar and add a service through the Add Ping Services dialog. Select the highest-level protocol that matches the service being checked, then enter the target in the format associated with that protocol. For an ICMP example, the README identifies `router.local` or `192.168.1.1` as target examples. The application then uses the configured interval, timeout, and reply history to produce live response-time information. The README does not document a command-line first-run procedure or a headless configuration file.

What the local scanner and interface views add

Network-interface management is one of NetSonar's broader utility areas. The README says users can view and manage interfaces, including IP configuration and statistics. That can help with local diagnosis because a probe result depends on the route and address configuration selected by the host, although the README does not explain whether an interface selection is automatically applied to every probe.

The network scanner adds discovery and comparison. It can list open ports and services on discovered local hosts, track what changed since the previous scan, and import items into monitoring. This is useful when the exact set of machines or services to monitor is not fully known. It is not presented as a general-purpose vulnerability scanner. The README does not claim authentication testing, exploitation, credential checks, or detection of application-layer weaknesses. Its stated scope is discovery, port and service listing, change tracking, and import into monitoring.

The distinction matters for choosing the right tool. NetSonar can answer questions such as whether a known host answers a selected protocol probe and how response times vary in the application. A separate host-discovery or security-scanning system would be needed if the requirement includes broader asset inventory, rule-based exposure checks, or remediation workflows. The README does not document integrations with external databases, notification services, or ticketing systems.

License, releases, and upgrade boundaries

NetSonar is identified by the repository as licensed under `AGPL-3.0`. The license can affect source and distribution obligations for an organization considering modifications or networked use. The README identifies the license but does not interpret how it applies to a particular deployment, so teams should examine the repository `LICENSE` file and obtain their own legal review rather than infer a compliance conclusion from this review.

The repository is not archived. Its last push was on 2026-10-12. Recent releases include `0.6.0` on 2026-10-12, `0.5.1` on 2026-09-11, and `0.5.0` on 2026-09-10. This records recent development activity, but the README does not provide a release policy, support window, compatibility matrix, migration guide, or user-facing changelog guidance. A user moving between versions should inspect `CHANGELOG.md` and the relevant release notes directly.

Downgrading is documented for the shell installer:

bash
# Replace x.x.x by the version you want to install
bash -c "$(curl -fsSL https://raw.githubusercontent.com/sn4k3/NetSonar/main/scripts/install-netsonar.sh)" -- x.x.x

This is a version-specific installer action, not a general rollback plan. The README does not say how to restore configuration, export probe history, or undo data changes. Those omissions matter to a long-lived installation.

Limits of NetSonar as an operations platform

The clearest limitation is that the documented product is a desktop application. It uses Avalonia and SukiUI and presents live charts, but the README does not claim a daemon mode, web interface, remote agent, API, alert delivery, multi-user access control, or centralized storage. Calling it a replacement for a network operations platform would therefore exceed the documented feature set.

Protocol coverage is broad, but coverage is not the same as deep service diagnostics. The README identifies protocol-aware checks and response metrics, yet it does not state whether NetSonar verifies application payloads, authentication behavior, certificates in detail, or service-specific business logic. It also does not document how probe results are retained, how large reply histories become, or how failure events are surfaced outside the interface.

There is a similar measurement boundary around speed testing. The README confirms manual and scheduled tests with latency, download, and upload results, but provides no server-selection policy, bandwidth limit, test size, or accuracy guidance. Users should treat the displayed values as results from the application's implementation, not as a substitute for a separately controlled capacity test.

For a team needing passive telemetry, centralized dashboards, or alert routing, the documented feature set is incomplete. For a developer checking a service from a workstation, the protocol selector and live chart provide a focused starting point.

A practical comparison with command-line probes

A command-line ping or protocol client usually answers a narrower question: whether one host or endpoint responds during one invocation. NetSonar adds persistent monitoring, selectable intervals and timeouts, reply history, single-service charts, and multi-service comparisons in one graphical application. The README does not claim that this approach is faster or more accurate than command-line tools. The practical difference is the interface and the monitoring workflow.

A dedicated local-network scanner generally focuses on discovering assets, ports, and services. NetSonar's scanner does those tasks, but the README also ties discovery to monitoring through the ability to import scan results. A centralized monitoring platform may provide shared retention, alert policies, access control, and team-level reporting, but the README does not document those capabilities for NetSonar. The comparison therefore comes down to scope: local desktop diagnosis and visualization versus a potentially centralized system, without claiming that any alternative has an unstated feature.

Editorial conclusion

Adopt NetSonar when an administrator or developer needs a desktop application that combines protocol-specific service probes, local network scanning, interface inspection, and live network measurements. Do not assume it is a server-side monitoring agent or an unattended observability platform, because the README does not describe such deployment or automation behavior. Verify first that the required protocols, operating system, target addresses, installation method, and expected measurement workflow match your environment. Its concrete adoption boundary is its documentation as a cross-platform Avalonia desktop application built with C# and dotnet, not as a remote agent.

Frequently asked questions

Which protocols can NetSonar probe?

The README lists ICMP, TCP, UDP, TLS, DNS, NTP, HTTP, WebSocket, SSH, SMTP, IMAP, MQTT, STUN, and SIP. It recommends choosing the highest-level protocol that represents the service being monitored.

How do I install NetSonar on Windows?

The documented winget command is `winget install -e --id PTRTECH.NetSonar`. The README also provides a PowerShell installer command that downloads and executes a script from the repository's `main` branch.

Can NetSonar monitor response times over time?

Yes. The README describes configurable intervals, timeouts, reply history, and live single-service and multi-service response-time charts. It also lists rolling averages, percentiles, jitter, loss, failures, scaling, and selectable sample windows.

Can NetSonar scan hosts and import them into monitoring?

The README says the network scanner discovers local-network hosts, lists open ports and services, tracks changes since the previous scan, and allows discovered items to be imported into monitoring. It does not describe security testing or exploitation features.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. README
  4. Releases
  5. sn4k3/NetSonar on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/sn4k3-netsonar.svg)](https://hysenlabs.com/projects/sn4k3-netsonar)

Was this useful?