A fast, lightweight IPv6 link-local network scanner for Linux, Windows and macOS, built on .NET 10, SharpPcap, PacketDotNet and Avalonia. Background: Scanning IPv6 networks.
IPv6 networks are far too large to sweep, so the scanner uses multicast discovery instead. It sends ICMPv6 echo requests (with a correct checksum, hop limit 255) from the adapter's link-local address to
| Group | Meaning |
|---|---|
ff02::1 |
all nodes - every IPv6 host answers |
ff02::2 |
all routers - only routers answer |
Every echo reply is matched to our request (ICMPv6 identifier + sequence), so a host answering the router group is reliably flagged as Router. Each group is pinged 3 times (1 s apart) and the scanner listens 2 s afterwards - about 5 seconds in total. The MAC address is looked up in an embedded OUI database to show the manufacturer (randomized/locally administered MACs show as Unknown).
- .NET 10 runtime (or use a self-contained build)
- A packet-capture library:
- Linux:
libpcap(sudo apt install libpcap0.8t64,sudo dnf install libpcap) - macOS: libpcap is part of the OS
- Windows: Npcap
- Linux:
- Permission to capture/send raw frames:
- Linux: run as root or grant capabilities once:
sudo setcap cap_net_raw,cap_net_admin=eip ./IPv6-NetScanner(fordotnet rungive them to thedotnethost binary or just usesudo) - macOS: run with
sudoor give your user access to/dev/bpf* - Windows: Npcap installed (run as administrator if no adapters show up)
- Linux: run as root or grant capabilities once:
dotnet build
# GUI
dotnet run --project src/IPv6NetScanner.Gui
# CLI
dotnet run --project src/IPv6NetScanner.Cli -- --list
sudo dotnet run --project src/IPv6NetScanner.Cli -- -i eth0Publish self-contained single files:
dotnet publish src/IPv6NetScanner.Gui -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true
dotnet publish src/IPv6NetScanner.Gui -c Release -r win-x64 --self-contained -p:PublishSingleFile=true| Path | Content |
|---|---|
src/IPv6NetScanner.Core |
Scanner, packet builder, adapter discovery, OUI database (no UI dependency) |
src/IPv6NetScanner.Gui |
Avalonia desktop app |
src/IPv6NetScanner.Cli |
Command line scanner |
tests/IPv6NetScanner.Tests |
xUnit tests (checksum, packet layout, vendor lookup) |
src/IPv6NetScanner.Core/Resources/vendorMacs.xml is embedded into the assembly. Source: maclookup.app.
- Only the local link is scanned; hosts that drop multicast echo requests (some firewalls,
icmp6 echo_ignore_multicast) stay invisible.
See LICENSE.