# 🌐 NetPulse Network Scanner

Professional Network Discovery & Analysis Tool
Version 1.0.0 | Built with WPF .NET 8.0

## 📋 Overview

NetPulse Network Scanner is a professional-grade Windows desktop application that discovers and analyzes devices on your local network. It provides detailed information about connected devices including IP addresses, hostnames, MAC addresses, manufacturers, open ports, running services, and SNMP information.

💡 What makes NetPulse special?
• Real-time device discovery with live updates
• Service fingerprinting that identifies what's actually running on ports
• MAC address vendor lookup using IEEE OUI database
• One-click connections to SSH, RDP, and web interfaces
• Fully asynchronous scanning - UI never freezes!

## 🚀 Getting Started

### System Requirements

- Windows 10 or Windows 11
- .NET 8.0 Runtime (included with the app)
- Administrator privileges (for MAC address detection)
- Network connection (Ethernet or Wi-Fi)

### First Launch

1. Right-click the application and select "Run as Administrator"
2. Click Yes on the UAC prompt
3. The main window will open showing your local IP and subnet
4. The OUI database will load automatically (first time may take a few seconds)
5. Click Start Scan to begin discovering devices

⚠️ Administrator Required!
MAC address detection requires administrator privileges. Always run NetPulse as Administrator for complete functionality.

## 🔍 Scanning Your Network

### How Scanning Works

NetPulse performs a comprehensive multi-stage scan of your local network:

Stage | What It Does | Information Gathered
--- | --- | ---
1. Discovery | ICMP ping sweep of all IPs in your subnet | Active devices, ping response time
2. MAC & Vendor | ARP table lookup + OUI database query | MAC address, device manufacturer
3. DNS Resolution | Reverse DNS lookup | Hostname
4. Port Scanning | TCP connect scan to common ports (21-8443) | Open ports + service identification
5. Service Fingerprinting | Banner grabbing and signature matching | Service names, versions, banners
6. SNMP Query | SNMPv2c query for sysName/sysDescr | SNMP device name and description

### Start a Scan

1. Click the ▶ Start Scan button
2. Watch as devices appear in real-time
3. Progress bar shows scan completion status
4. Click ⏹ Cancel at any time to stop

📊 Ports Scanned: 21 (FTP), 22 (SSH), 23 (Telnet), 25 (SMTP), 53 (DNS), 80 (HTTP), 110 (POP3), 143 (IMAP), 443 (HTTPS), 445 (SMB), 3306 (MySQL), 3389 (RDP), 5432 (PostgreSQL), 5900 (VNC), 6379 (Redis), 8080 (HTTP-Alt), 8443 (HTTPS-Alt), 27017 (MongoDB)

## ⚡ Features

🌐

#### Network Discovery

Auto-detects your local subnet and finds all active devices

🔌

#### Port Scanning

Scans 18 common TCP ports with service detection

🏭

#### Vendor Lookup

Identifies device manufacturers via IEEE OUI database

💻

#### Service Detection

Banner grabbing to identify specific software and versions

🔍

#### Real-time Search

Instant filtering across all columns

💾

#### CSV Export

Save scan results for documentation or analysis

🚀

#### Quick Launch

One-click SSH, RDP, and web browser connections

📋

#### Copy Info

Copy IP or full device details to clipboard

## 🖱️ Context Menu (Right-Click)

Right-click any device in the results grid to access quick actions:

Menu Item | Action | Network Impact
--- | --- | ---
🔌 Open SSH | Opens SSH connection to the device (prompts for username) | Creates TCP connection to port 22
🖥️ Remote Desktop | Launches Windows RDP client to the device | Creates TCP connection to port 3389
🌐 Open in Browser | Opens device IP in default web browser | HTTP/HTTPS GET request
📡 Ping (continuous) | Opens cmd window with continuous ping | ICMP echo requests
🔍 Traceroute | Shows network path to the device | ICMP with increasing TTL
📋 Copy IP Address | Copies IP to clipboard | None
📄 Copy Full Info | Copies all device details to clipboard | None
ℹ️ About | Shows application information and credits | None

⚠️ Connection Confirmation
For security, SSH, RDP, and Browser actions show a confirmation dialog before connecting.

## 🔎 Search & Filter

The search bar at the top of the window filters results in real-time as you type.

#### Searchable Fields:

- IP Address (e.g., `192.168.1`)
- Hostname (e.g., `router`, `printer`)
- MAC Address (e.g., `00:14:22`)
- Vendor (e.g., `Cisco`, `Apple`, `Intel`)
- Open Ports (e.g., `22`, `80`, `HTTP`)
- SNMP Name
- Status

#### Search Examples:

Search Term | Finds
--- | ---
`192.168` | All devices on that subnet
`apple` | Apple devices (iPhones, Macs, etc.)
`22` | Devices with SSH open (port 22)
`http` | Devices with web servers
`cisco` | Cisco networking equipment
`mysql` | Devices running MySQL databases

📊 Result Counter: Shows `📊 X / Y devices` where X is filtered count and Y is total discovered.

## 💾 Exporting Results

Save your scan results to CSV format for documentation, analysis, or sharing.

### How to Export:

1. Complete a scan (or load previous results)
2. Click the 💾 Export CSV button
3. Choose a save location and filename
4. Click Save

### CSV File Contents:

    IP Address, Hostname, MAC Address, Vendor, Open Ports, SNMP Name, Status
    192.168.1.1, router.local, 00:14:22:XX:XX:XX, Cisco, "22/SSH, 80/HTTP", Router, Complete
    192.168.1.50, desktop-pc, 00:1A:2B:XX:XX:XX, Intel, "3389/RDP", N/A, Complete

## 🔧 Troubleshooting

Problem | Solution
--- | ---
No devices found | • Run as Administrator • Check your network connection • Disable Windows Firewall temporarily • Try pinging an IP manually
MAC addresses show "Unavailable" | • Run as Administrator • ARP table may be empty - ping the device first • Wait a few seconds and re-scan
Vendors show "Unknown" | • Click "Update OUI" button to download the database • Check internet connection • Some MACs may not be in the database
Scan is very slow | • Large subnets (e.g., /16) take longer • Reduce concurrent threads in code • Cancel and restart
SNMP shows "N/A" for all devices | • Normal - most home devices don't support SNMP • Enterprise network equipment usually does
Export CSV fails | • Check write permissions to save location • Try saving to Desktop or Documents • Close the CSV file if already open

## ❓ Frequently Asked Questions

#### Why do I need Administrator privileges?

MAC address detection uses the Windows ARP table, which requires elevated privileges to read. Without admin rights, MAC addresses will show as "Unavailable".

#### Is this tool safe to use on my network?

Yes! NetPulse only performs passive discovery (ICMP ping) and standard TCP connection attempts. It does not exploit vulnerabilities or attempt to hack devices. All connections you initiate (SSH, RDP) use standard Windows clients.

#### Will my IT department detect this?

Yes - network scans generate ICMP and TCP traffic that can be logged by firewalls and IDS systems. Always get permission before scanning networks you don't own.

#### Can I scan the entire Internet?

No - NetPulse is designed for local network scanning only. It automatically detects your local subnet and scans within that range.

#### How often should I update the OUI database?

Click "Update OUI" once a month to keep vendor information current. The database downloads from IEEE's official source.

#### Can I add more ports to scan?

Yes - modify the `commonPorts` dictionary in `NetworkService.cs` to add or remove ports.

#### Does this work on Wi-Fi?

Yes - NetPulse works on both Ethernet and Wi-Fi networks.

## ⌨️ Keyboard Shortcuts

Shortcut | Action
--- | ---
Ctrl + S | Save (not applicable - use Export CSV)
Ctrl + C | Copy selected text
F5 | Start Scan (from code - not UI)
Esc | Cancel Scan (via Cancel button)

## 👏 Credits

NetPulse Network Scanner
Created by: DeepSeek
Prompted by: Greg Urbano
Technologies Used:
• WPF (.NET 8.0) - User Interface
• CommunityToolkit.Mvvm - MVVM infrastructure
• Lextm.SharpSnmpLib - SNMP protocol support
• IEEE OUI Database - MAC vendor lookup
License: Free for personal and commercial use