This tool audits ARP and MAC address data to provide deep insights on the devices in a network
NetVendor is a Python tool designed specifically for network administrators and cybersecurity professionals to analyze and visualize the vendor distribution of all devices on their network. It processes MAC address tables and IP ARP data from Cisco, HP/Aruba, and other network routers and switches to provide detailed insights into your network's composition.
NetVendor provides comprehensive network device analysis and visualization
- π Getting Started - Installation and setup instructions
- π Features - What NetVendor can do
- π Usage Guide - How to use the tool
- π₯ Input/Output - File formats and results
- π Project Status - Updates and future plans
- Parse MAC address tables from network devices (routers and switches)
- Identify device vendors using IEEE OUI database
- Fast local lookups using pre-seeded cache (53,000+ entries)
- Secure operation with minimal external API calls
- Generate comprehensive reports and visualizations
- Support for multiple network device output formats
- Real-time progress tracking
- Interactive HTML dashboard
- Detailed port analysis for network troubleshooting
- VLAN distribution analysis
- Vendor-specific network insights
- Network security assessment capabilities
- Asset inventory management
- Network topology mapping
- Historical data tracking
- Integration with network management systems
- Network Security: Network administrators can quickly identify unauthorized or unexpected devices on their network
- Asset Management: Track and manage network infrastructure by vendor
- Network Visibility: Clear visualization of device distribution across VLANs and ports
- Port Analysis: Detailed insights into port utilization and device connections on switches
- Change Tracking: Monitor network infrastructure changes over time
- Efficiency: Fast processing with progress tracking for large network datasets
- Organization: All output files are neatly organized for easy reference
- Speed & Security: Most vendor lookups are performed locally using a pre-seeded cache, minimizing external API calls and ensuring fast, secure operation
Interactive security dashboard showing device distribution and potential security concerns
-
Device Discovery
- Processes MAC addresses from network devices
- Identifies vendors using IEEE OUI database
- Maps devices to network segments
-
Data Organization
- Groups devices by vendor
- Tracks VLAN assignments
- Maps port connections
- Analyzes network topology
-
Visualization
- Creates interactive vendor distribution charts
- Generates VLAN analysis graphs
- Shows device distribution patterns
- Provides network security insights
-
Analysis
- Identifies vendor patterns
- Highlights network security concerns
- Tracks device distribution
- Monitors network changes
NetVendor is designed for:
- Network administrators managing enterprise networks
- Network engineers responsible for infrastructure
- Network architects planning network changes
- Network security teams monitoring device access
- Cybersecurity professionals assessing network security
- IT managers overseeing network infrastructure
- Network operations teams maintaining network health
- Network consultants providing network analysis
- Network auditors performing compliance checks
- Working internet connection (for IEEE OUI database updates)
- Input file containing MAC addresses from network devices (routers and switches)
- Python 3.6 or higher
- Required Python packages:
- requests
- plotly
- rich
- tqdm
- Clone the repository:
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
- Install the package:
pip install -e .
Run the script with your network device output file:
netvendor input_file.txt
The tool will:
- Process the MAC addresses or ARP data from your network devices
- Identify vendors using the IEEE OUI database
- Generate comprehensive reports and visualizations
- Create an interactive dashboard showing vendor distribution
- Provide detailed port analysis and VLAN insights
- Output all results to the
output
directory
If you are on Windows please run this script from PowerShell using these commands:
$env:PYTHONIOENCODING = "utf-8"
$env:PYTHONUTF8 = "1"
python3 -m netvendor MAC-Table.txt
Please replace MAC-Table.txt
with the name of your switch or router output file.
The tool accepts three main types of input files:
- Simple MAC Address List
00:11:22:33:44:55
00:AA:BB:CC:DD:EE
40:B0:76:12:34:56
- MAC Address Tables (Cisco IOS/IOS-XE, NX-OS, HP/Aruba)
Vlan Mac Address Type Ports
---- ----------- -------- -----
10 0011.2233.4455 DYNAMIC Gi1/0/1
Supports various formats including:
- Cisco IOS/IOS-XE format (dot-separated MAC addresses)
- Cisco NX-OS format
- HP/Aruba format
- Automatic VLAN and port detection
- ARP Tables (Cisco IOS/IOS-XE)
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.1 - 0011.2233.4455 ARPA Vlan10
Features:
- Automatic format detection
- VLAN extraction from interface field
- Support for dot-separated MAC addresses
NetVendor now features improved file format detection:
- Automatically identifies file type based on content
- Handles multiple MAC address formats (colon-separated, dot-separated, no separators)
- Intelligently extracts VLAN information from different sources:
- MAC tables: First column
- ARP tables: Interface field (e.g., "Vlan10")
- Simple MAC lists: Marked as N/A
- Preserves port information where available
- Skips header lines automatically
The tool generates several output files in the output
directory:
-
Device Information CSV
- Lists all discovered network devices
- Includes MAC address, vendor, VLAN, and port information
- Useful for inventory management and network documentation
-
Port Report CSV (for MAC address tables)
- Shows port utilization on switches
- Lists devices connected to each port
- Includes VLAN and vendor information per port
- Helps with network troubleshooting and capacity planning
-
Vendor Distribution HTML
- Interactive dashboard with multiple visualizations
- Vendor distribution pie chart
- VLAN analysis charts
- Device distribution across network segments
- Helps network administrators understand their network composition
Interactive vendor distribution dashboard showing device types and network segments
- Vendor Summary Text
- Plain text summary of vendor distribution
- Quick reference for network documentation
- Easy to share with team members
NetVendor is actively maintained and regularly updated with new features and improvements. Recent updates include:
- Enhanced file format detection and processing
- Improved VLAN extraction across different file types
- Better handling of various MAC address formats
- Automatic header detection and skipping
Future plans include:
- Support for additional network device output formats
- Enhanced visualization options
- Network topology mapping
- Historical data tracking
- Integration with network management systems
Contributions are welcome! Please feel free to submit pull requests or open issues for improvements.
This project is licensed under the MIT License - see the LICENSE file for details.
Stewart Alexander
- IEEE for OUI database access
- Open source community for various Python packages