What vendors are lurking on your network? This software figures this out!
NetVendor is a Python tool for analyzing network device vendors from MAC address tables or IP ARP data. It helps network administrators identify and track devices on their network by vendor, providing organized output and visual analytics.
- π Getting Started - Installation and setup
- π Features - What NetVendor can do
- π Usage Guide - How to use the tool
- π₯ Input/Output - File formats and results
- π Project Status - Updates and future plans
- Identifies devices from major vendors (Apple, Cisco, Dell, HP, Mitel)
- Creates vendor-specific device lists with progress tracking
- Generates pie charts of vendor distribution
- Converts results to CSV format
- Maintains an up-to-date OUI database from IEEE
- Rich progress visualization for all operations
- Organized output file structure
- Security: Understanding what exists in your network is essential for security
- Asset Management: Easy identification of vendor devices
- Network Visibility: Clear visualization of device distribution
- Change Tracking: Benchmark your network to easily see changes
- Efficiency: Fast processing with progress tracking
- Organization: All output files are neatly organized
-
Device Discovery
- Downloads the latest IEEE OUI database
- Identifies devices from major vendors (Apple, Cisco, Dell, HP, Mitel)
- Shows real-time progress for each operation
-
Data Organization
- Creates vendor-specific device lists in text format
- Converts all results to CSV for spreadsheet analysis
- Organizes files in a clean directory structure
-
Visualization
- Generates pie charts showing vendor distribution
- Provides detailed device counts
- Shows percentage breakdowns
-
Analysis
- Identifies hidden VLANs
- Maps devices to IP addresses
- Tracks network composition changes
- Working internet connection (for IEEE OUI database updates)
- Input file containing MAC addresses
- Python 3.6 or higher
# Clone the repository
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
# Install dependencies
pip install -r requirements.txt
Run the script:
python NetVendor.py
The script will:
- Check for required dependencies
- Update the OUI database if needed (downloads from IEEE)
- Prompt for Mac Address input file and column information
- Process devices and generate reports with progress visualization
- Create pie charts and CSV files (for spreadsheets like Excel / Google Sheets etc)
- Organize all output files in the
output
directory
The program accepts ARP or MAC address tables as input, such as:
- Cisco IOS
show ip arp
- Cisco IOS
show mac address-table
- Any text file containing MAC addresses in a column
Example input format:
Internet 10.0.0.1 1 0123.4567.89ab ARPA Vlan100
Internet 10.0.0.2 1 abcd.ef01.2345 ARPA Vlan100
NetVendor generates three types of output:
-
Console Output
- Real-time dependency checks
- Progress bars for MAC address processing
- Summary table showing vendor distribution with:
- Vendor names
- Device counts
- Percentage of total devices
-
Interactive HTML Visualization (
output/vendor_distribution.html
)- Interactive pie chart showing vendor distribution
- Hover tooltips with detailed information
- Legend for easy vendor identification
- Ability to show/hide vendors
- Download chart as PNG option
-
CSV Report (
output/[input-filename]-Devices.csv
)- Detailed device information in spreadsheet format
- Columns include:
- IP Address
- MAC Address
- VLAN
- Vendor
NetVendor/
βββ NetVendor.py # Main application
βββ oui_cache.json # Cached vendor lookups
βββ output/ # Generated at runtime
βββ vendor_distribution.html # Interactive pie chart
βββ [input-filename]-Devices.csv # Detailed device list
- Added OUI manager for dynamic vendor identification
- Improved progress visualization with rich library
- Consolidated output files under organized directory structure
- Added proper .gitignore for sensitive data protection
- Added requirements.txt for dependency management
- Removed browser dependency for pie charts
- Improved documentation and code organization
High Priority:
- Add more vendor checks and OUI patterns
- Add command line arguments for automation
- Add error handling for network connectivity issues
- Add logging for troubleshooting
Medium Priority:
- Add configuration file for customizable settings
- Add unit tests and integration tests
- Add historical data comparison
- Add export to additional formats
Low Priority:
- Add web interface for easier use
- Add network scanning capabilities
- Add detailed vendor statistics
- Add report generation
Created by Stew Alexander (2021)