A centralized suite of network management tools for switch operations, backup management, and device discovery.
When you first run the program, it will create a credentials template:
python3 main.pyThis creates credentials.txt in the CustomTools root directory. Edit it with your SSH credentials:
yourusername
yourpassword
python3 main.pyThis launches the main menu where you can:
- Run different tools
- Manage SSH connections
- Have interactive sessions with switches
-
FDB Searching - Search for MAC addresses on switches
- Mode 1: Search by MAC address across switches
- Mode 2: Search by switch port to identify devices
- Maintains connection cache across queries
-
Create Backup - Backup switch configurations (in development)
- Connect to multiple switches
- Save configuration backups
- Log device information
-
Bulk Update - Run commands on multiple switches (in development)
- Execute commands on a list of switches
- Save results and logs
-
Self Lookup - Find your device on the network (in development)
- Scan local network interfaces
- Search for devices on the network
- Identify which switch a device is connected to
-
Interactive Session - Direct SSH access to any switch
- Use cached connections or create new ones
- Execute arbitrary commands
- Type
exitto return to main menu
-
List Connections - View all active SSH connections
-
Close Connection - Manually disconnect from a specific switch
-
Exit - Cleanly close all connections and exit the program
All tools share the same SSH connection pool. This means:
- Connections persist across tool executions
- No need to reconnect to the same switch when running multiple queries
- Automatic connection testing and cleanup
- Credentials are loaded once at startup
- Centralized
credentials.pymodule handles all auth - Template is auto-created if credentials don't exist
After each tool execution, you return to the main menu automatically. You can:
- Run multiple tools in sequence
- Have interactive sessions with different switches
- Create backups, do searches, and return to menu without closing the program
The central orchestrator containing:
ConnectionManager: Manages SSH connection poolToolRunner: Executes available toolsMainMenu: Handles menu navigation and user input
FDB search functionality adapted for use with central ConnectionManager.
Handles loading and validating SSH credentials from credentials.txt.
- Start program:
python3 main.py - Select "FDB Searching" (1)
- Search for a MAC address or port
- Return to main menu
- Select "Interactive Session" (5)
- Connect to the same switch (connection reused)
- Run commands directly on the switch
- Exit interactive session
- Return to main menu
- Select "Exit" (8) to close all connections and quit
- Python 3.6+
- paramiko (for SSH connections)
- CSV file support for camera database (optional, for FDB searching)
Install requirements:
pip install paramikoCustomTools/
├── main.py # Main entry point
├── credentials.py # Credential management
├── credentials.txt # Your SSH credentials (create on first run)
├── FDBSearching/
│ ├── main.py # Original FDB search implementation
│ ├── integrated.py # FDB search adapted for central manager
│ └── macdatabase.txt # MAC address database
├── CreateBackup/ # Backup tool (in development)
├── BulkUpdate/ # Bulk update tool (in development)
├── SelfLookup/ # Device lookup tool (in development)
└── README.md # This file