Skip to content

A powerful Python-based CLI tool to monitor and visualize your local network in real-time

License

Notifications You must be signed in to change notification settings

vishnuvrj7/CableNetMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‘ CableNetMonitor

Python Platform License Status

A powerful Python-based CLI tool to monitor and visualize your local network in real-time

Monitor device uptime β€’ Track network latency β€’ Generate beautiful topology maps

Features β€’ Installation β€’ Usage β€’ Screenshots β€’ Contributing


🌟 Overview

CableNetMonitor is an intuitive network monitoring solution that provides comprehensive insights into your local area network. It continuously pings devices within your specified IP range, logs their connectivity status, and generates beautiful visual topology maps labeled with device hostnames.

✨ Key Highlights

  • Real-time Monitoring: Track device availability and network performance
  • Visual Network Maps: Generate topology diagrams with hostname labels
  • Comprehensive Logging: Export data to CSV for analysis
  • MAC & Vendor Discovery: Identify device manufacturers and physical addresses
  • QR Code Integration: Generate shareable QR codes for network information
  • Gateway Auto-Detection: Automatically monitor your network gateway
  • Flexible Scheduling: One-time scans or continuous monitoring
  • Cross-platform: Works on Windows, Linux, and macOS

πŸš€ Features

Feature Description
🎯 Smart IP Scanning Ping devices in custom IP ranges with configurable intervals
πŸ“Š Detailed Logging Track IP, latency, hostname, MAC address, and timestamps
πŸ• Automated Scheduling Set up recurring scans every X minutes or run one-time scans
πŸ—ΊοΈ Network Visualization Generate beautiful topology graphs with device relationships
🏷️ Hostname Labels Automatically resolve and display device hostnames
πŸ” MAC Address Discovery Retrieve and log physical addresses of network devices
🏒 Vendor Identification Automatically identify device manufacturers from MAC addresses
πŸ“± QR Code Generation Generate QR codes for IP addresses and hostnames for easy sharing
🌐 Gateway Auto-Detection Automatically includes and monitors your default gateway
🎨 Colored Terminal Intuitive color-coded output (🟒 UP / πŸ”΄ DOWN)
πŸ“± User-friendly CLI Emoji-based interface designed for beginners

πŸ“¦ Installation

Prerequisites

  • Python 3.7 or higher
  • pip package manager

Quick Install

  1. Clone the repository

    git clone https://github.com/vishnuvrj7/CableNetMonitor.git
    cd CableNetMonitor
  2. Install dependencies

    pip install -r requirements.txt

Required Dependencies

ping3>=4.0.0
networkx>=2.8
matplotlib>=3.5.0
colorama>=0.4.4
qrcode>=7.3.0
pillow>=9.0.0
requests>=2.28.0

πŸ› οΈ Usage

Quick Start

  1. Run the application

    python main.py
  2. Configure your scan

    • Start IP: Enter the beginning of your IP range (e.g., 192.168.1.1)
    • End IP: Enter the end of your IP range (e.g., 192.168.1.50)
    • Scan Interval:
      • Enter 0 for a one-time scan
      • Enter any number > 0 for continuous monitoring (in minutes)

Example Configuration

🌐 CableNetMonitor - Network Scanner
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ“ Start IP: 192.168.1.1
πŸ“ End IP: 192.168.1.50
⏱️  Scan Interval: 5

πŸš€ Starting network scan...

πŸ“ Project Structure

CableNetMonitor/
β”œβ”€β”€ πŸ“„ main.py              # CLI entry point and user interface
β”œβ”€β”€ 🌐 pinger.py            # Core ping functionality
β”œβ”€β”€ πŸ” scanner.py           # IP range generation and scanning logic
β”œβ”€β”€ πŸ“ logger.py            # CSV logging and data persistence
β”œβ”€β”€ 🎨 visualizer.py        # Network topology visualization
β”œβ”€β”€ πŸ“± qr_generator.py      # QR code generation for devices
β”œβ”€β”€ 🏒 vendor_lookup.py     # MAC address vendor identification
β”œβ”€β”€ πŸ“Š ping_log.csv         # Generated log file
β”œβ”€β”€ πŸ–ΌοΈ topology.png         # Generated network diagram
β”œβ”€β”€ πŸ“± qr_codes/            # Directory for generated QR codes
β”œβ”€β”€ πŸ“‹ requirements.txt     # Python dependencies
└── πŸ“– README.md           # Project documentation

πŸ“ˆ Output Files

πŸ“Š Log File: ping_log.csv

The tool generates a comprehensive CSV log with the following columns:

Column Description Example
Timestamp When the ping was performed 2025-07-24 01:03:20
IP Target IP address 192.168.1.8
Status Device availability UP / DOWN
Latency Response time in ms 1.28
Hostname Resolved device name desktop-hp
MAC Address Physical address d8:50:e6:12:3a:9c
Vendor Device manufacturer Hewlett Packard Enterprise

πŸ—ΊοΈ Network Topology: topology.png

  • Visual representation of your network structure
  • Devices connected to gateway/router
  • Hostname labels for easy identification
  • Color-coded status indicators
  • Automatic gateway detection and inclusion

πŸ“± QR Codes: qr_codes/

  • Generated QR codes for each discovered device
  • Contains IP address and hostname information
  • Easy sharing and mobile device access
  • Organized in dedicated folder structure

πŸ“Έ Screenshots

Network Topology Visualization

Network Topology

Example network topology showing connected devices with hostnames

Terminal Output

🌐 Gateway: 192.168.1.1 (router.local) - Vendor: Cisco Systems
🟒 192.168.1.1    UP     2.1ms   router.local           00:14:22:01:23:45  Cisco Systems
🟒 192.168.1.8    UP     1.3ms   desktop-hp             d8:50:e6:12:3a:9c  Hewlett Packard Enterprise  
πŸ”΄ 192.168.1.15   DOWN   ---     unknown                ---                Unknown
🟒 192.168.1.22   UP     0.8ms   laptop-work            ac:de:48:00:11:22  Apple, Inc.
πŸ“± QR codes generated in ./qr_codes/ directory
πŸ—ΊοΈ Network topology saved as topology.png

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


If you find this project helpful, please consider giving it a ⭐!

GitHub stars GitHub forks

About

A powerful Python-based CLI tool to monitor and visualize your local network in real-time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages