NetVendor provides comprehensive network device analysis and visualization
NetVendor is a Python tool for network administrators and cybersecurity professionals to analyze and visualize the vendor distribution of devices on a network. It processes MAC address tables and ARP data from a wide range of network devices (including Cisco, HP/Aruba, Juniper, Extreme, Brocade, and more), providing detailed insights into your network's composition.
- Multi-vendor MAC address parsing: Supports Cisco, HP/Aruba, Juniper, Extreme, Brocade, and more.
- Flexible input: Accepts MAC address lists, MAC tables, and ARP tables in various formats.
- Vendor identification: Uses a local IEEE OUI cache for fast, secure lookups.
- Comprehensive reporting: Generates CSVs, summaries, and interactive HTML dashboards.
- VLAN and port analysis: Extracts and visualizes VLAN and port data where available.
- Extensible and robust: Easily add support for new formats; thoroughly tested with real-world data.
- Python 3.6 or higher
- Required packages:
requests
,plotly
,rich
,tqdm
- Input file containing MAC addresses or ARP data from your network devices
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
pip install -e .
netvendor input_file.txt
$env:PYTHONIOENCODING = "utf-8"
$env:PYTHONUTF8 = "1"
python3 -m netvendor input_file.txt
NetVendor automatically detects and parses the following formats:
00:11:22:33:44:55
00-11-22-33-44-55
001122334455
0011.2233.4455
Vlan Mac Address Type Ports
10 0011.2233.4455 DYNAMIC Gi1/0/1
20 00:0E:83:11:22:33 DYNAMIC ge-0/0/0
30 B8:AC:6F:77:88:99 DYNamic 1:1
- Cisco:
0011.2233.4455
,Gi1/0/1
- HP/Aruba:
00:24:81:44:55:66
,1
- Juniper:
00:0E:83:11:22:33/ff:ff:ff:ff:ff:ff
,ge-0/0/0
- Extreme:
B8-AC-6F-77-88-99/ff-ff-ff-ff-ff-ff
,1:1
- Brocade:
00:11:22:33:44:55/ffff.ffff.ffff
,1/1
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.1 - 0011.2233.4455 ARPA Vlan10
- Automatic file type detection based on content
- Flexible MAC parsing: Accepts colon, hyphen, dot, and mask/prefix formats
- VLAN extraction from multiple sources (column, interface, etc.)
- Port extraction for detailed switch analysis
- Header skipping and robust error handling
All results are saved in the output
directory:
- Device Information CSV: MAC, Vendor, VLAN, Port
- Port Report CSV: Port utilization and device mapping
- Vendor Distribution HTML: Interactive dashboard with charts
🔒 Interactive security dashboard showing device distribution and potential security concerns
📊 Vendor distribution dashboard showing device types and network segments
- Vendor Summary Text: Quick reference for documentation
Below is a sample (placeholder) graph of the vendor distribution generated by NetVendor:
+--------------------------------------+
| Vendor Distribution (Sample) |
+----------------------+--------------+
| Cisco | 40% |
| HP | 30% |
| Juniper | 20% |
| Other | 10% |
+----------------------+--------------+
NetVendor is actively maintained and regularly updated.
Recent improvements:
- Enhanced MAC address parsing for Juniper, Aruba, Extreme, Brocade, and more
- Improved OUIManager logic and normalization
- Real-world OUI test coverage
- All tests pass and program output confirmed
Planned:
- More vendor format support
- Additional visualization options
- Network topology mapping
- Historical data tracking
Contributions are welcome! Please open issues or submit pull requests.
MIT License
Stewart Alexander
💡 Tip: For best results, always use the latest OUI cache and keep your dependencies up to date. And remember: Networks are more fun when you know who's on them! 😄