A comprehensive ONVIF device discovery and analysis tool for network cameras and devices
Project description
ONVIF Scout
A comprehensive ONVIF device discovery and analysis tool that helps you find, authenticate, and examine ONVIF-compatible devices on your network. ONVIF Scout provides robust device detection, credential testing, and detailed capability analysis with an intuitive command-line interface.
๐ Features
Device Discovery
- Uses WS-Discovery protocol for device detection
- Supports multiple network interfaces
- Configurable timeout and retry settings
- Automatic response parsing and validation
Authentication Probe
- Concurrent credential testing with configurable workers
- Support for both Basic and Digest authentication
- Automatic auth type detection
- Built-in retry mechanism for reliability
- Progress tracking for long operations
Feature Detection
- Comprehensive capability analysis
- Service enumeration
- Device information retrieval
- PTZ capabilities detection
- Media profile inspection
- Analytics support detection
User Interface
- Color-coded console output
- Progress bars for long operations
- Detailed debug logging option
- Clean, organized results display
- Support for quiet mode
๐ Requirements
- Python 3.8 or higher
- Network access to ONVIF devices
- Required packages:
- colorama >= 0.4.6
- requests >= 2.32.3
๐ Installation
Using pip (Recommended)
pip install onvifscout
From Source
# Clone the repository
git clone https://github.com/chrissmartin/onvifscout.git
cd onvifscout
# Create virtual environment (recommended)
python -m venv venv
# Activate virtual environment
# On Linux/MacOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .
๐ ๏ธ Usage
Basic Command
onvifscout
Command-Line Options
Optional arguments:
-h, --help Show this help message
--timeout SECS Discovery timeout in seconds (default: 3)
--max-workers NUM Maximum concurrent authentication attempts (default: 5)
--usernames LIST Comma-separated list of usernames to try
--passwords LIST Comma-separated list of passwords to try
--skip-auth Skip authentication probe
--skip-features Skip feature detection
--no-color Disable colored output
--quiet Suppress non-essential output
--debug Enable debug logging
Example Commands
# Extended discovery timeout and more concurrent workers
onvifscout --timeout 5 --max-workers 10
# Custom credential lists
onvifscout --usernames admin,root,operator --passwords admin,12345,password123
# Quick discovery only (skip auth and feature detection)
onvifscout --skip-auth --skip-features
# Debug mode with extended timeout
onvifscout --debug --timeout 10
# Quiet mode with custom credentials
onvifscout --quiet --usernames admin --passwords admin,12345
Default Credentials
The tool tests the following default credentials unless otherwise specified:
- Usernames:
admin
,root
,service
- Passwords:
admin
,12345
,password
๐ Project Structure
onvifscout/
โโโ onvifscout/
โ โโโ __init__.py # Package initialization
โ โโโ main.py # CLI entry point
โ โโโ auth.py # Authentication handling
โ โโโ discovery.py # Device discovery
โ โโโ features.py # Feature detection
โ โโโ models.py # Data models
โ โโโ utils.py # Utilities and logging
โ โโโ help_formatter.py # Help message formatting
โโโ setup.py # Package configuration
โโโ requirements.txt # Dependencies
โโโ README.md # Documentation
๐ค Contributing
Contributions are welcome! Please feel free to submit pull requests, create issues, or suggest improvements.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
๐ License
Distributed under the MIT License. See LICENSE
for more information.
โ๏ธ Contact
Project Link: https://github.com/chrissmartin/onvifscout
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file onvifscout-0.1.0.tar.gz
.
File metadata
- Download URL: onvifscout-0.1.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb67501a5cc7a25db9fec5c0cd50fc9c8ea26aa37a68d6f19dbc78808939b0b1 |
|
MD5 | ca211963b702300934350b00aa645889 |
|
BLAKE2b-256 | 9c1a3e73b835a099167b4bb35729b016ef467f5eef4cd013a029705f50528737 |
File details
Details for the file onvifscout-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: onvifscout-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54c9aee0ba8e6d04dba6a23b32bcc3723bf7c431c9473668807c988609e95080 |
|
MD5 | 7027cc704e9525bcc2a4f339f2240bc2 |
|
BLAKE2b-256 | 20fc00fb471858838c595fa2e43e6943950420ba1381b88438dc3d16509c20df |