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
Metadata
Release files for onvifscout 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| onvifscout-0.2.4.tar.gz | 41.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| onvifscout-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.2 kB
Release files / onvifscout-0.2.4.tar.gz
| Download URL | onvifscout-0.2.4.tar.gz |
|---|---|
| Size | 41.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e35a8c3248de4accb6f17a9f19375e662062aef8e2dc7edfcd76745d104d33b4
|
|
BLAKE2b-256 checksum How to use checksums |
f98e23d7a0786af6b7823b03b3ea37d600c3557143b6670b3b059046042ce37a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.18
|
Release files / onvifscout-0.2.4-py3-none-any.whl
| Download URL | onvifscout-0.2.4-py3-none-any.whl |
|---|---|
| Size | 41.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7fd9b839171d321304a080e616f49f0010c11fac57d3119883094556ea231ac8
|
|
BLAKE2b-256 checksum How to use checksums |
0ef00673494e28c0b4c308ead882d18673801e784452ec205df6827f50e830f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.18
|