onvifscout


Nameonvifscout JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/chrissmartin/onvifscout
SummaryA comprehensive ONVIF device discovery and analysis tool for network cameras and devices
upload_time2024-10-22 20:49:44
maintainerNone
docs_urlNone
authorChriss Martin
requires_python>=3.8
licenseNone
keywords onvif camera network security monitoring discovery ip-camera cctv surveillance
VCS
bugtrack_url
requirements colorama requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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)

```bash
pip install onvifscout
```

### From Source

```bash
# 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

```bash
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

```bash
# 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.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## 📜 License

Distributed under the MIT License. See `LICENSE` for more information.

## ✉️ Contact

Project Link: [https://github.com/chrissmartin/onvifscout](https://github.com/chrissmartin/onvifscout)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/chrissmartin/onvifscout",
    "name": "onvifscout",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "onvif camera network security monitoring discovery ip-camera cctv surveillance",
    "author": "Chriss Martin",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/9c/1a/3e73b835a099167b4bb35729b016ef467f5eef4cd013a029705f50528737/onvifscout-0.1.0.tar.gz",
    "platform": null,
    "description": "# ONVIF Scout\n\nA 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.\n\n## \ud83c\udf1f Features\n\n### Device Discovery\n\n- Uses WS-Discovery protocol for device detection\n- Supports multiple network interfaces\n- Configurable timeout and retry settings\n- Automatic response parsing and validation\n\n### Authentication Probe\n\n- Concurrent credential testing with configurable workers\n- Support for both Basic and Digest authentication\n- Automatic auth type detection\n- Built-in retry mechanism for reliability\n- Progress tracking for long operations\n\n### Feature Detection\n\n- Comprehensive capability analysis\n- Service enumeration\n- Device information retrieval\n- PTZ capabilities detection\n- Media profile inspection\n- Analytics support detection\n\n### User Interface\n\n- Color-coded console output\n- Progress bars for long operations\n- Detailed debug logging option\n- Clean, organized results display\n- Support for quiet mode\n\n## \ud83d\udccb Requirements\n\n- Python 3.8 or higher\n- Network access to ONVIF devices\n- Required packages:\n  - colorama >= 0.4.6\n  - requests >= 2.32.3\n\n## \ud83d\ude80 Installation\n\n### Using pip (Recommended)\n\n```bash\npip install onvifscout\n```\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/chrissmartin/onvifscout.git\ncd onvifscout\n\n# Create virtual environment (recommended)\npython -m venv venv\n\n# Activate virtual environment\n# On Linux/MacOS:\nsource venv/bin/activate\n# On Windows:\nvenv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install the package\npip install -e .\n```\n\n## \ud83d\udee0\ufe0f Usage\n\n### Basic Command\n\n```bash\nonvifscout\n```\n\n### Command-Line Options\n\n```\nOptional arguments:\n  -h, --help            Show this help message\n  --timeout SECS        Discovery timeout in seconds (default: 3)\n  --max-workers NUM     Maximum concurrent authentication attempts (default: 5)\n  --usernames LIST      Comma-separated list of usernames to try\n  --passwords LIST      Comma-separated list of passwords to try\n  --skip-auth          Skip authentication probe\n  --skip-features      Skip feature detection\n  --no-color           Disable colored output\n  --quiet              Suppress non-essential output\n  --debug              Enable debug logging\n```\n\n### Example Commands\n\n```bash\n# Extended discovery timeout and more concurrent workers\nonvifscout --timeout 5 --max-workers 10\n\n# Custom credential lists\nonvifscout --usernames admin,root,operator --passwords admin,12345,password123\n\n# Quick discovery only (skip auth and feature detection)\nonvifscout --skip-auth --skip-features\n\n# Debug mode with extended timeout\nonvifscout --debug --timeout 10\n\n# Quiet mode with custom credentials\nonvifscout --quiet --usernames admin --passwords admin,12345\n```\n\n### Default Credentials\n\nThe tool tests the following default credentials unless otherwise specified:\n\n- Usernames: `admin`, `root`, `service`\n- Passwords: `admin`, `12345`, `password`\n\n## \ud83d\udcc1 Project Structure\n\n```\nonvifscout/\n\u251c\u2500\u2500 onvifscout/\n\u2502   \u251c\u2500\u2500 __init__.py        # Package initialization\n\u2502   \u251c\u2500\u2500 main.py            # CLI entry point\n\u2502   \u251c\u2500\u2500 auth.py            # Authentication handling\n\u2502   \u251c\u2500\u2500 discovery.py       # Device discovery\n\u2502   \u251c\u2500\u2500 features.py        # Feature detection\n\u2502   \u251c\u2500\u2500 models.py          # Data models\n\u2502   \u251c\u2500\u2500 utils.py           # Utilities and logging\n\u2502   \u2514\u2500\u2500 help_formatter.py  # Help message formatting\n\u251c\u2500\u2500 setup.py               # Package configuration\n\u251c\u2500\u2500 requirements.txt       # Dependencies\n\u2514\u2500\u2500 README.md             # Documentation\n```\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit pull requests, create issues, or suggest improvements.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## \ud83d\udcdc License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n## \u2709\ufe0f Contact\n\nProject Link: [https://github.com/chrissmartin/onvifscout](https://github.com/chrissmartin/onvifscout)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive ONVIF device discovery and analysis tool for network cameras and devices",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/chrissmartin/onvifscout/issues",
        "Documentation": "https://github.com/chrissmartin/onvifscout",
        "Homepage": "https://github.com/chrissmartin/onvifscout",
        "Source Code": "https://github.com/chrissmartin/onvifscout"
    },
    "split_keywords": [
        "onvif",
        "camera",
        "network",
        "security",
        "monitoring",
        "discovery",
        "ip-camera",
        "cctv",
        "surveillance"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20fc00fb471858838c595fa2e43e6943950420ba1381b88438dc3d16509c20df",
                "md5": "7027cc704e9525bcc2a4f339f2240bc2",
                "sha256": "54c9aee0ba8e6d04dba6a23b32bcc3723bf7c431c9473668807c988609e95080"
            },
            "downloads": -1,
            "filename": "onvifscout-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7027cc704e9525bcc2a4f339f2240bc2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 19865,
            "upload_time": "2024-10-22T20:49:43",
            "upload_time_iso_8601": "2024-10-22T20:49:43.087631Z",
            "url": "https://files.pythonhosted.org/packages/20/fc/00fb471858838c595fa2e43e6943950420ba1381b88438dc3d16509c20df/onvifscout-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c1a3e73b835a099167b4bb35729b016ef467f5eef4cd013a029705f50528737",
                "md5": "ca211963b702300934350b00aa645889",
                "sha256": "cb67501a5cc7a25db9fec5c0cd50fc9c8ea26aa37a68d6f19dbc78808939b0b1"
            },
            "downloads": -1,
            "filename": "onvifscout-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ca211963b702300934350b00aa645889",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 18352,
            "upload_time": "2024-10-22T20:49:44",
            "upload_time_iso_8601": "2024-10-22T20:49:44.840673Z",
            "url": "https://files.pythonhosted.org/packages/9c/1a/3e73b835a099167b4bb35729b016ef467f5eef4cd013a029705f50528737/onvifscout-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-22 20:49:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "chrissmartin",
    "github_project": "onvifscout",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        }
    ],
    "lcname": "onvifscout"
}
        
Elapsed time: 0.38725s