Net Eagle
This dashboard consolidates a full suite of network-diagnostic, DNS/email, HTTP/HTTPS, and security-inspection tools into a single, extensible WPF application.
Platform & UI
- WPF application using MahApps.Metro for a clean, modern look
- Tab-based interface with consistent margins, star-sized layouts, and custom watermark background per pane
- Responsive controls (RowDefinition Height="*", HorizontalAlignment="Stretch") ensure each tab grows and shrinks with the window
Core Network Utilities
- Net Scanner: scan single IP or CIDR subnet for open ports, MAC, hostname, status
- MultiPing: send continuous pings to multiple hosts in parallel, real-time results
- Netstat: display local TCP/UDP connections (protocol, local/remote address, state)
- Traceroute: map hop-by-hop path to a target host, round-trip timings
DNS & WHOIS Tools
- DNS Lookup: resolve A/AAAA, MX, TXT/SPF, DMARC-DKIM records
- WHOIS: query domain registration details in a scrollable text box
HTTP & SSL/TLS Inspection
- HTTP: send GET/HEAD requests, display status code and response headers
- HTTPS: validate SSL/TLS configuration, show certificate chain and negotiation details
Email-Specific Checks
- MX/SPF/TXT/DKIM/DMARC: aggregate all DNS-based mail records for a given domain
Utilities & Extras
- Public IP: one-click retrieval of your external IP address
- Packet Capture: live NIC selection, start/stop packet capture, search and export PCAP files
- SSH Terminal: embedded WebView2 + xterm.js integration for interactive SSH sessions, auto-resizing on window change
Architecture & Patterns
- MVVM with MainViewModel driving TabItem.DataContext
- Commands (ICommand) for all actions: scan, ping, clear, export, lookup, etc.
- Data-binding to ObservableCollection
for real-time grid updates - Custom RowStyle/CellStyle to keep text visible on hover/selection
Branding & Aesthetics
- Subtle watermark logo (Assets/background.png) in each results pane via ImageBrush
- Accent button styles, consistent typography (SemiBold titles, Consolas for code/text dumps)
Network Capture in Detail
Here’s an in-depth look at your Network Capture tab—how it works, what each piece does, and how it all fits together:
Device Selection & Control
- ComboBox bound to your ViewModel’s Devices list
- Populated at startup via SharpPcap/Pcap.NET enumeration of all network interfaces
- DisplayMemberPath="Description" shows the friendly name (e.g. “Ethernet 2”)
- Start/Stop button
- Text (CaptureButtonText) toggles between “Start Capture” and “Stop Capture”
- On click, fires StartStopCaptureCommand
- Start: begins asynchronous packet capture on the selected NIC
- Stop: halts capture, finalizes any in-flight packets
- Clear button
- ClearCaptureCommand empties your in-memory packet buffer and UI grid
- Export… button
- ExportCaptureCommand serializes the current packet list to CSV or JSON for offline analysis
- Save PCAP… button
- SavePcapCommand writes a standard .pcap file using the underlying capture library (so you can open it in Wireshark later)
Live Status & Search
- Status Text
- Binds to CaptureStatus (“Capturing… 152 packets”, “Stopped”, or any error)
- Updates in real time via INotifyPropertyChanged
- Search Box + Button
- TextBox bound to SearchTerm; user can type IP, protocol name, or keyword
- SearchCommand filters the in-memory collection (FilteredPackets) on that term
- Enables quick drilling into hundreds or thousands of captured packets
Results Grid
- Wrapped in a Border with your subtle watermark background
- DataGrid bound to FilteredPackets (an ObservableCollection
) - Columns
- Time: timestamp of capture (formatted HH:mm:ss.fff)
- Source / Dest: source and destination IP addresses
- Proto: protocol name (TCP, UDP, ICMP, etc.)
- Len: packet length in bytes
- Info: summary—TCP flags, HTTP Host header, DNS query name, etc.
- Rendered in a horizontally-scrolling TextBlock with ellipsis trimming
- Styling
- Fully transparent rows so the watermark shows through
- Custom RowStyle/CellStyle ensures text stays black on hover and selection
- Star-sized “Info” column (e.g. Width="2*") takes up leftover space for readability
- Real-time update via FilteredPackets.Add(...) as each packet arrives
- Columns
Implementation Details
- Uses SharpPcap (or Pcap.NET) under the hood:
- Device.StartCapture() asynchronously raises “packet arrived” events
- Each RawCapture is wrapped in your PacketViewModel
- Dispatched onto the UI thread (via Dispatcher.Invoke or an IProgress
) to append to the ObservableCollection
- Threading
- Capture runs on a background thread to avoid freezing the UI
- All UI-bound operations (collection adds, status text updates) are marshaled back to WPF’s main dispatcher
Export & Analysis
- CSV export includes all columns plus raw hex if you choose
- PCAP export writes out complete packet bytes so you can reopen in Wireshark or tshark
- Search feature supports simple substring match; you could extend to BPF-style filtering in code
Possible Enhancements
- Protocol-specific detail panes: double-click a row to show full headers in a separate panel
- Color coding: shade TCP vs UDP vs ICMP rows differently for at-a-glance scanning
- Live charts: show packet rate over time with a small chart above the grid
- Advanced filtering: support BPF syntax (“tcp port 80 and host 10.0.0.5”) rather than just “substring”



Purchase Net Eagle
€9.99
for a single license
For bulk licensing and enterprise solutions, please contact us.