Skip to content

Releases: StewAlexander-com/ShadowVendor

v14.0.0: Major Rebranding to ShadowVendor

29 Dec 03:22

Choose a tag to compare

ShadowVendor v14.0.0

🎉 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: netvendorshadowvendor
  • Environment variables: NETVENDOR_*SHADOWVENDOR_*
  • Output files: netvendor_siem.*shadowvendor_siem.*
  • Config files: netvendor.confshadowvendor.conf

🔄 Migration Guide

  1. Update imports: from netvendorfrom shadowvendor
  2. Update environment variables: NETVENDOR_*SHADOWVENDOR_*
  3. Update config files: netvendor.confshadowvendor.conf
  4. Reinstall package: pip install -e .

📊 Test Results

  • ✅ 41 tests passing
  • ✅ All execution paths validated
  • ✅ Comprehensive manual testing completed
  • ✅ Ready for production use

📚 Documentation


Full Changelog: See commit history for detailed changes.

NetVendor v12.8: Enhanced HTML Dashboard Readability

17 Dec 16:01

Choose a tag to compare

🎨 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

17 Dec 15:48

Choose a tag to compare

🔧 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

04 Dec 17:05

Choose a tag to compare

🚀 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

19 Mar 17:22

Choose a tag to compare

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

19 Mar 00:02

Choose a tag to compare

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.txt

Dependencies

  • 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

16 Mar 02:26

Choose a tag to compare

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.txt

NetVendor v12.0

16 Mar 00:13

Choose a tag to compare

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.txt

NetVendor

19 May 16:17
08188f3

Choose a tag to compare

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 arp format 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 arp output, like below):


    image

Output

  • Example of the output:


    image
    program_output2
    image
  • 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:
    2022-03-06 18 43 25
  • Created text file "company_list.txt" output:


    image
  • Created text file "oui_final_list.txt" output:


    image
  • Created Vendor-Devices.txt file:


    image
  • Creates a list of CSV "spreadsheet" device files and puts them in a new csv_files folder
  • Puts all the *.txt files created into the text_files folder

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_files folder, for easy review by any spreadsheet app like visidata (added 03/23/2022)
  • Added code to move all the *.txt files to a created text_files folder (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❗



NetVendor

21 Apr 15:13

Choose a tag to compare

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 arp format 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 arp output, like below):


    image

Output

  • Example of the output:


    image
    program_output2
    image
  • 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:
    2022-03-06 18 43 25
  • Created text file "company_list.txt" output:


    image
  • Created text file "oui_final_list.txt" output:


    image
  • Created Vendor-Devices.txt file:


    image
  • Creates a list of CSV "spreadsheet" device files and puts them in a new csv_files folder
  • Puts all the *.txt files created into the text_files folder

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_files folder, for easy review by any spreadsheet app like visidata (added 03/23/2022)
  • Added code to move all the *.txt files to a created text_files folder (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❗