Releases: StewAlexander-com/ShadowVendor
v14.0.0: Major Rebranding to ShadowVendor
🎉 Major Release: ShadowVendor v14.0.0
🚀 Major Changes
Complete Rebranding:
- Project renamed from NetVendor to ShadowVendor
- All package names, imports, and references updated
- Environment variables:
NETVENDOR_*→SHADOWVENDOR_* - Output files:
netvendor_siem.*→shadowvendor_siem.* - GitHub repository renamed to ShadowVendor
✨ New Features & Improvements
Testing & Quality:
- Comprehensive test suite with 41+ tests
- All execution paths validated
- Mock data testing completed
- Test coverage documentation
Documentation:
- Complete technical tutorial (TUTORIAL.md)
- Advanced usage guide (ADVANCED.md)
- Execution paths documentation (EXECUTION_PATHS.md)
- Test coverage documentation (TEST_COVERAGE.md)
- Enhanced installation instructions
Developer Experience:
- Python API for programmatic usage
- Configuration file support (INI, YAML, TOML)
- Improved error handling
- Better user experience for new users
📦 Installation
git clone https://github.com/StewAlexander-com/ShadowVendor.git
cd ShadowVendor
pip install -r requirements.txt
python3 ShadowVendor.py tests/data/test-mac-table.txt⚠️ Breaking Changes
- Package name:
netvendor→shadowvendor - Environment variables:
NETVENDOR_*→SHADOWVENDOR_* - Output files:
netvendor_siem.*→shadowvendor_siem.* - Config files:
netvendor.conf→shadowvendor.conf
🔄 Migration Guide
- Update imports:
from netvendor→from shadowvendor - Update environment variables:
NETVENDOR_*→SHADOWVENDOR_* - Update config files:
netvendor.conf→shadowvendor.conf - Reinstall package:
pip install -e .
📊 Test Results
- ✅ 41 tests passing
- ✅ All execution paths validated
- ✅ Comprehensive manual testing completed
- ✅ Ready for production use
📚 Documentation
- README.md - Quick start and usage
- TUTORIAL.md - Technical deep dive
- ADVANCED.md - Advanced topics
- EXECUTION_PATHS.md - Execution paths
- TEST_COVERAGE.md - Test coverage
Full Changelog: See commit history for detailed changes.
NetVendor v12.8: Enhanced HTML Dashboard Readability
🎨 UI/UX Improvements:
- Enhanced typography with modern font stack (system fonts) and improved line-height (1.6) for better readability
- Increased padding around chart containers (35px 30px) for better visual breathing room
- Added section headings (h2) for "Vendor Distribution" and "VLAN Analysis" sections
- Improved spacing with container max-width (1400px) and optimized margins
- Enhanced visual styling with refined shadows and subtle hover effects
- Better color contrast (#2c3e50 for headings, #34495e for subheadings)
📱 Responsive Design:
- Added mobile-responsive breakpoints for screens ≤768px
- Optimized padding and font sizes for mobile devices (15px 10px body padding)
- Adjusted chart heights for better mobile viewing experience (500px/800px vs 600px/1000px)
✨ Visual Enhancements:
- Refined border radius (10px) and box shadows (0 2px 8px rgba(0,0,0,0.08))
- Subtle hover effects on chart containers for better interactivity
- Improved container layout with centered max-width for better readability on large screens
🔧 Technical:
- All improvements maintain backward compatibility
- No changes to chart functionality or data processing
- Improved accessibility with better contrast ratios
NetVendor v12.7: Cross-Platform Compatibility & Bug Fixes
🔧 Cross-Platform Fixes:
- Consistent pathlib.Path usage for Windows/Linux/Mac compatibility
- Explicit UTF-8 encoding on all file operations (prevents encoding issues on Windows)
- Atomic file writes for cache files (prevents corruption if process interrupted)
- Enhanced error handling with clear, actionable messages
🐛 Bug Fixes:
- Fixed None vendor handling in offline mode (now shows 'Unknown' correctly)
- Fixed TypeError when formatting None vendors in vendor summary, CSV exports, and visualizations
- All edge cases verified and working (special characters, empty files, whitespace-only files)
📚 Documentation:
- Added comprehensive cross-platform compatibility section
- Enhanced error handling documentation
- Updated runtime considerations with cross-platform notes
- Clarified Windows/Linux/macOS usage patterns
✅ Testing:
- All 9 comprehensive tests pass
- Edge cases verified (special characters, empty files, None vendors, whitespace-only files)
- Cross-platform compatibility confirmed for Linux Debian, Intel Mac, and Windows
🔒 Reliability:
- No infinite hangs: All network operations bounded by timeouts
- File corruption protection: Atomic writes prevent data loss
- Graceful error handling: Clear messages for all failure scenarios
NetVendor v12.5: SIEM Integration, Drift Analysis, Runtime Logging & Enhanced UX
🚀 Major Features:
- SIEM export with stable schema (CSV/JSONL in output/siem/)
- Historical drift analysis with metadata correlation (timestamp, site, change_ticket_id)
- Runtime logging for troubleshooting and performance analysis (JSONL format)
- Enhanced error handling with user-friendly messages and actionable hints
- Offline mode support for air-gapped networks (--offline flag)
📚 Documentation & UX Improvements:
- Comprehensive README restructuring for quick value discovery
- TL;DR section with key benefits at the top
- 'Who is this for?' section for role-based identification
- Table of Contents for easy navigation
- Quick-start examples with sample data (try it in 60 seconds)
- Reassuring notes about data cleaning (no heavy preprocessing needed)
- Explicit browser instructions for dashboard viewing
- Clarified advanced features require NetVendor.py
🔧 Technical Improvements:
- Automatic directory creation for history and SIEM exports
- Improved error messages with context and hints
- Structured runtime logging (NETVENDOR_LOG=1)
- Enhanced drift analysis with metadata for SIEM correlation
- Better file validation and error handling
📦 All outputs:
- Standard: Device CSV, Port CSV, HTML dashboard, Vendor Summary
- Optional: SIEM exports (CSV/JSONL), History archives, Drift analysis CSV
- Runtime logs for troubleshooting (when enabled)
For full details, see README.md
NetVendor v12.4
March 19, 2025
🌟 Major Features
Port Analysis Enhancement
- Added comprehensive port-based analysis for MAC address tables
- Introduced new port report generation (
[input-filename]-Ports.csv) - Smart port type detection (Gi, Fa, Te, Eth)
- Detailed per-port statistics and device mapping
Visualization Improvements
- Enhanced interactive dashboard with responsive design
- Improved VLAN analysis with multiple chart views
- Better spacing and readability in pie charts
- Enhanced hover information and tooltips
Performance Optimization
- Smarter rate limiting with 250ms intervals
- Improved cache management (saves every 50 entries)
- Optimized memory usage with batch processing
- Enhanced progress tracking with separate progress bars
🔍 Detailed Changes
Port Analysis
- New port report includes:
- Port identifier (e.g., Gi1/0/1, Fa1/0/1)
- Total connected devices per port
- VLAN distribution per port
- Vendor distribution per port
- Detailed device information with MAC addresses and VLANs
- Network topology mapping
Dashboard Enhancements
- Responsive layout that adapts to window size
- Fixed navigation menu for easy page switching
- Improved chart spacing and dimensions
- Enhanced vendor distribution visualization
- Better VLAN analysis presentation
Documentation
- Updated README with detailed port analysis information
- Enhanced usage instructions and examples
- Added comprehensive output file descriptions
- Improved installation and dependency documentation
Code Quality
- Improved error handling for file operations
- Enhanced input format detection
- Better type hints and documentation
- Cleaner code organization
🛠 Technical Details
New Output Files
[input-filename]-Ports.csv: Detailed port analysis report- Enhanced
vendor_distribution.html: Improved interactive dashboard - Updated
vendor_summary.txt: Better formatted text summary
Dependencies
- Python 3.6 or higher
- Required packages:
- requests
- plotly
- rich
- tqdm
🔧 Installation
# Clone the repository
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
# Install dependencies
pip install -r requirements.txt🚀 Usage
python NetVendor.py <input_file>📝 Notes
- Port analysis is only available for MAC address tables
- ARP tables will skip port analysis automatically
- Requires internet connection for vendor lookups
- Cache system reduces API calls for better performance
🐛 Bug Fixes
- Fixed port detection in various switch formats
- Improved VLAN parsing accuracy
- Enhanced error handling for malformed input
- Better handling of rate limits in API calls
🔜 Coming Soon
- More vendor checks and OUI patterns
- Command line arguments for automation
- Enhanced error handling
- Logging system for troubleshooting
NetVendor v12.3
NetVendor v12.3
Major Enhancements
Improved Vendor Lookup
- Added multiple vendor lookup services for better coverage
- Implemented local IEEE OUI database with multiple format support
- Enhanced MAC address normalization and validation
- Added retry logic with exponential backoff
- Improved rate limiting with adaptive intervals
Better Data Handling
- Enhanced MAC address format handling for Cisco devices
- Improved VLAN data processing and consistency
- Better CSV file generation with proper formatting
- Optimized memory usage with batch processing
- Enhanced cache management with multiple layers
Enhanced Visualization
- Improved dashboard layout and responsiveness
- Better progress tracking with granular progress bars
- Enhanced vendor name cleanup and consistency
- Better error handling and recovery mechanisms
Security Improvements
- Added comprehensive .gitignore for sensitive data
- Improved configuration file handling
- Enhanced privacy considerations
- Better cache file security
Installation
# Clone the repository
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
# Install dependencies
pip install -r requirements.txtDependencies
- Python 3.6+
- requests>=2.31.0
- rich>=13.7.0
- matplotlib>=3.8.0
- plotly>=5.18.0
- pandas>=2.1.0
- urllib3>=2.0.0
- tqdm>=4.66.0
- python-dotenv>=1.0.0
Documentation
See the README.md for full documentation.
Contributing
See CONTRIBUTING.md for guidelines on how to contribute.
Changelog
See CHANGELOG.md for a detailed list of changes.
NetVendor v12.1
What's New
- Improved documentation and README organization
- Added OUI manager for dynamic vendor identification
- Enhanced progress visualization with rich library
- Consolidated output files structure
- Added proper .gitignore for sensitive data protection
- Added requirements.txt for dependency management
- Created a MAC address generator to test operations
Installation
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
pip install -r requirements.txtNetVendor v12.0
What's New
- Improved documentation and README organization
- Added OUI manager for dynamic vendor identification
- Enhanced progress visualization with rich library
- Consolidated output files structure
- Added proper .gitignore for sensitive data protection
- Added requirements.txt for dependency management
Installation
git clone https://github.com/StewAlexander-com/NetVendor.git
cd NetVendor
pip install -r requirements.txtNetVendor
What vendors are lurking on your network?
This software figures this out!
How?
This program reviews an ARP or MAC Address table (Such as a Cisco IOS sh ip arp or sh mac add output), and produces information on your network like:
- How many different vendors (as in companies) exist within your network?
- How many different types of hardware (MAC OUIs) exist within your network?
- Where are all these things, and what are their IPs?
- A list (and total) of all the Apple, Cisco, Dell, HP, and Mitel products that exist on your network
- Are there any hidden VLANs lurking within your network? This answers this too!
Table of Contents:
Why?
- Understanding what exactly is in your network is essential for security reasons...
- Benchmarks your network so you can easily see changes
Dependencies
- This uses a restful API to search for the vendors, so it needs a working internet connection
- This needs the output of an ARP or MAC Address table as a text file (such as the Cisco IOS
#sh ip arpformat seen below), as it is using this to do the lookup
Input
- Contents of an ARP or MAC Address table as a text file (such as a Cisco
#sh ip arpoutput, like below):

Output
- If Chrome or Firefox is available (on a Windows, Mac or Linux system), it will create an interactive web-based pie chart and display it in the browser:

- Created text file "company_list.txt" output:

- Created text file "oui_final_list.txt" output:

- Created Vendor-Devices.txt file:

- Creates a list of CSV "spreadsheet" device files and puts them in a new
csv_filesfolder - Puts all the
*.txtfiles created into thetext_filesfolder
To Do / Updates
- Automatically attempts to upgrade required libraries (05/22/2022)
- Added a banner and info box (see output section of readme, 04/21/22)
- Fixed issue if text / CSV files already exist (04/07/2022)
- Added a timeout to the Vendor lookup, and significantly improved company lookup time (04/06/2022)
- Created CSV files for every created device text file in a separate
csv_filesfolder, for easy review by any spreadsheet app like visidata (added 03/23/2022) - Added code to move all the
*.txtfiles to a createdtext_filesfolder (added 03/23/2022) - Fixed a bug where a created csv file may have contents from more than one device file in it (resolved 03/23/2022)
- Used the rich library to colorize cli output (added 03/06/2022)
- Style Improvements [on-going, started 03/06/2022]
- Added lookup for Mitel Corperation Phones (02/11/2022)
- Streamlined API call, add support for Apple Macs (supporting Windows, Linux or Mac computers (Added 02/10/2022)
- Added a progress bar for collecting oui info via “tqdm” (added 12/22/2021)
- Use the sanitized OUI list here, to increase filtering (on-going)
This app is free❗
- However if you want to help fund my development of this app, feel free using my tag,
$StewAlexandervia cash app - Click here for further instructions on how to send money via Cash App
NetVendor
What vendors are lurking on your network?
This software figures this out!
How?
This program reviews an ARP or MAC Address table (Such as a Cisco IOS sh ip arp or sh mac add output), and produces information on your network like:
- How many different vendors (as in companies) exist within your network?
- How many different types of hardware (MAC OUIs) exist within your network?
- Where are all these things, and what are their IPs?
- A list (and total) of all the Apple, Cisco, Dell, HP, and Mitel products that exist on your network
- Are there any hidden VLANs lurking within your network? This answers this too!
Table of Contents:
Why?
- Understanding what exactly is in your network is essential for security reasons...
- Benchmarks your network so you can easily see changes
Dependencies
- This uses a restful API to search for the vendors, so it needs a working internet connection
- This needs the output of an ARP or MAC Address table as a text file (such as the Cisco IOS
#sh ip arpformat seen below), as it is using this to do the lookup
Input
- Contents of an ARP or MAC Address table as a text file (such as a Cisco
#sh ip arpoutput, like below):

Output
- If Chrome or Firefox is available (on a Windows, Mac or Linux system), it will create an interactive web-based pie chart and display it in the browser:

- Created text file "company_list.txt" output:

- Created text file "oui_final_list.txt" output:

- Created Vendor-Devices.txt file:

- Creates a list of CSV "spreadsheet" device files and puts them in a new
csv_filesfolder - Puts all the
*.txtfiles created into thetext_filesfolder
To Do / Updates
- Added a banner and info box (see output section of readme, 04/21/22)
- Fixed issue if text / CSV files already exist (04/07/2022)
- Added a timeout to the Vendor lookup, and significantly improved company lookup time (04/06/2022)
- Created CSV files for every created device text file in a separate
csv_filesfolder, for easy review by any spreadsheet app like visidata (added 03/23/2022) - Added code to move all the
*.txtfiles to a createdtext_filesfolder (added 03/23/2022) - Fixed a bug where a created csv file may have contents from more than one device file in it (resolved 03/23/2022)
- Used the rich library to colorize cli output (added 03/06/2022)
- Style Improvements [on-going, started 03/06/2022]
- Added lookup for Mitel Corperation Phones (02/11/2022)
- Streamlined API call, add support for Apple Macs (supporting Windows, Linux or Mac computers (Added 02/10/2022)
- Added a progress bar for collecting oui info via “tqdm” (added 12/22/2021)
- Use the sanitized OUI list here, to increase filtering (on-going)
This app is free❗
- However if you want to help fund my development of this app, feel free using my tag,
$StewAlexandervia cash app - Click here for further instructions on how to send money via Cash App



