unbound-console


Nameunbound-console JSON
Version 0.6.3 PyPI version JSON
download
home_pagehttps://github.com/dmachard/unbound-console
SummaryPython console for unbound
upload_time2023-12-10 08:08:32
maintainer
docs_urlNone
authorDenis MACHARD
requires_python
license
keywords unbound console control remote client
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Build](https://github.com/dmachard/python-unbound-console/workflows/Build/badge.svg) ![Testing](https://github.com/dmachard/python-unbound-console/workflows/Testing/badge.svg) ![Pypi](https://github.com/dmachard/python-unbound-console/workflows/Publish/badge.svg)

# Python console for unbound server

## Table of contents
* [Installation](#installation)
* [Remote Control on Unbound](#remote-control-on-unbound)
* [Execute command](#execute-command)
* [Loading zone from YAML file](#loading-zone-from-yaml-file)
* [Loading zone from "LocalZone" object](#loading-zone-from-localzone-object)
* [Execute bulk command](#execute-bulk-command)

## Installation

![python 3.12.x](https://img.shields.io/badge/python%203.12.x-tested-blue) ![python 3.11.x](https://img.shields.io/badge/python%203.11.x-tested-blue) ![python 3.10.x](https://img.shields.io/badge/python%203.10.x-tested-blue) ![python 3.9.x](https://img.shields.io/badge/python%203.9.x-tested-blue) ![python 3.8.x](https://img.shields.io/badge/python%203.8.x-tested-blue)

This module can be installed from [pypi](https://pypi.org/project/unbound_console/) website.

This command will install the module with yaml support for loading zone data.

```python
pip install unbound_console[yaml]
```

If loading a zone using yaml is not required use the following command, zone data can instead be loaded through the `LocalZone` object:

```python
pip install unbound_console
```

## Remote Control on Unbound

![unbound 1.19.x](https://img.shields.io/badge/unbound%201.19.x-tested-green)  ![unbound 1.18.x](https://img.shields.io/badge/unbound%201.18.x-tested-green) ![unbound 1.17.x](https://img.shields.io/badge/unbound%201.17.x-tested-green) ![unbound 1.16.x](https://img.shields.io/badge/unbound%201.16.x-tested-green) ![unbound 1.15.x](https://img.shields.io/badge/unbound%201.15.x-tested-green) ![unbound 1.14.x](https://img.shields.io/badge/unbound%201.14.x-tested-green)  ![unbound 1.13.x](https://img.shields.io/badge/unbound%201.13.x-tested-green) ![unbound 1.12.x](https://img.shields.io/badge/unbound%201.12.x-tested-green)

Before to use this utility. You must activate the remote control on your unbound server.
See [config file](https://github.com/dmachard/python-unbound-console/blob/master/testsdata/unbound_tls.conf) example.

### Execute command

You can execute commands with the function `send_command`. See [nlnetlabs documentations](https://www.nlnetlabs.nl/documentation/unbound/unbound-control/) for the full list of available commands.

- Import the module in your code

```python
from unbound_console import RemoteControl
```

> An asyncio implementation is available, use `RemoteControlAsync` instead.

- Configure the remote control client with tls support. You can also provide a unix socket `unix_sock="/var/run/unbound-console.sock"`.

```python
rc = RemoteControl(host="127.0.0.1", port=8953,
                   server_cert = "/etc/unbound/unbound_server.pem",
                   client_cert= "/etc/unbound/unbound_control.pem",
                   client_key= "/etc/unbound/unbound_control.key")
```

- Execute a command and get output

```python
o = rc.send_command(cmd="status")
print(o)
```

### Loading zone from YAML file

YAML zone definition example:

> This requires installing unbound_console with yaml support

```
zone:
  name: home.
  type: static
  records:
    - "router.home. 86400 IN A 192.168.0.1"
    - "192.168.0.1 86400 IN PTR router.test."
```

Call `load_zone` with the yaml file to load-it in your unbound server.

```python
o = rc.load_zone(zone_data='<yaml content>')
print(o)
```

### Loading zone from "LocalZone" object

Example loading from a `LocalZone` object:

```python
from unbound_console import LocalZone

zone = LocalZone(
    name="home",
    type="static",
    records=[
      "router.home. 86400 IN A 192.168.0.1",
      "192.168.0.1 86400 IN PTR router.test.",
    ],
)
o = rc.load_zone(zone_data=zone)
print(o)
```

### Execute bulk command

```python
domains_bulk = []
domains_bulk.append( "www.google.com always_nxdomain")

o = rc.send_command(cmd="local_zones", data_list=domains_bulk)
print(o)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/dmachard/unbound-console",
    "name": "unbound-console",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "unbound console control remote client",
    "author": "Denis MACHARD",
    "author_email": "d.machard@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/eb/05/d3750cf7740a1620ed5483db187da96e44aa54e6f881629314f275622597/unbound_console-0.6.3.tar.gz",
    "platform": "any",
    "description": "![Build](https://github.com/dmachard/python-unbound-console/workflows/Build/badge.svg) ![Testing](https://github.com/dmachard/python-unbound-console/workflows/Testing/badge.svg) ![Pypi](https://github.com/dmachard/python-unbound-console/workflows/Publish/badge.svg)\n\n# Python console for unbound server\n\n## Table of contents\n* [Installation](#installation)\n* [Remote Control on Unbound](#remote-control-on-unbound)\n* [Execute command](#execute-command)\n* [Loading zone from YAML file](#loading-zone-from-yaml-file)\n* [Loading zone from \"LocalZone\" object](#loading-zone-from-localzone-object)\n* [Execute bulk command](#execute-bulk-command)\n\n## Installation\n\n![python 3.12.x](https://img.shields.io/badge/python%203.12.x-tested-blue) ![python 3.11.x](https://img.shields.io/badge/python%203.11.x-tested-blue) ![python 3.10.x](https://img.shields.io/badge/python%203.10.x-tested-blue) ![python 3.9.x](https://img.shields.io/badge/python%203.9.x-tested-blue) ![python 3.8.x](https://img.shields.io/badge/python%203.8.x-tested-blue)\n\nThis module can be installed from [pypi](https://pypi.org/project/unbound_console/) website.\n\nThis command will install the module with yaml support for loading zone data.\n\n```python\npip install unbound_console[yaml]\n```\n\nIf loading a zone using yaml is not required use the following command, zone data can instead be loaded through the `LocalZone` object:\n\n```python\npip install unbound_console\n```\n\n## Remote Control on Unbound\n\n![unbound 1.19.x](https://img.shields.io/badge/unbound%201.19.x-tested-green)  ![unbound 1.18.x](https://img.shields.io/badge/unbound%201.18.x-tested-green) ![unbound 1.17.x](https://img.shields.io/badge/unbound%201.17.x-tested-green) ![unbound 1.16.x](https://img.shields.io/badge/unbound%201.16.x-tested-green) ![unbound 1.15.x](https://img.shields.io/badge/unbound%201.15.x-tested-green) ![unbound 1.14.x](https://img.shields.io/badge/unbound%201.14.x-tested-green)  ![unbound 1.13.x](https://img.shields.io/badge/unbound%201.13.x-tested-green) ![unbound 1.12.x](https://img.shields.io/badge/unbound%201.12.x-tested-green)\n\nBefore to use this utility. You must activate the remote control on your unbound server.\nSee [config file](https://github.com/dmachard/python-unbound-console/blob/master/testsdata/unbound_tls.conf) example.\n\n### Execute command\n\nYou can execute commands with the function `send_command`. See [nlnetlabs documentations](https://www.nlnetlabs.nl/documentation/unbound/unbound-control/) for the full list of available commands.\n\n- Import the module in your code\n\n```python\nfrom unbound_console import RemoteControl\n```\n\n> An asyncio implementation is available, use `RemoteControlAsync` instead.\n\n- Configure the remote control client with tls support. You can also provide a unix socket `unix_sock=\"/var/run/unbound-console.sock\"`.\n\n```python\nrc = RemoteControl(host=\"127.0.0.1\", port=8953,\n                   server_cert = \"/etc/unbound/unbound_server.pem\",\n                   client_cert= \"/etc/unbound/unbound_control.pem\",\n                   client_key= \"/etc/unbound/unbound_control.key\")\n```\n\n- Execute a command and get output\n\n```python\no = rc.send_command(cmd=\"status\")\nprint(o)\n```\n\n### Loading zone from YAML file\n\nYAML zone definition example:\n\n> This requires installing unbound_console with yaml support\n\n```\nzone:\n  name: home.\n  type: static\n  records:\n    - \"router.home. 86400 IN A 192.168.0.1\"\n    - \"192.168.0.1 86400 IN PTR router.test.\"\n```\n\nCall `load_zone` with the yaml file to load-it in your unbound server.\n\n```python\no = rc.load_zone(zone_data='<yaml content>')\nprint(o)\n```\n\n### Loading zone from \"LocalZone\" object\n\nExample loading from a `LocalZone` object:\n\n```python\nfrom unbound_console import LocalZone\n\nzone = LocalZone(\n    name=\"home\",\n    type=\"static\",\n    records=[\n      \"router.home. 86400 IN A 192.168.0.1\",\n      \"192.168.0.1 86400 IN PTR router.test.\",\n    ],\n)\no = rc.load_zone(zone_data=zone)\nprint(o)\n```\n\n### Execute bulk command\n\n```python\ndomains_bulk = []\ndomains_bulk.append( \"www.google.com always_nxdomain\")\n\no = rc.send_command(cmd=\"local_zones\", data_list=domains_bulk)\nprint(o)\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Python console for unbound",
    "version": "0.6.3",
    "project_urls": {
        "Homepage": "https://github.com/dmachard/unbound-console"
    },
    "split_keywords": [
        "unbound",
        "console",
        "control",
        "remote",
        "client"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73f2710a64632cbed1a375b3c42dbe05907b0bc6550e8940da085b8a6b621a78",
                "md5": "f3cf1023732ca78b6912ab8924c151c1",
                "sha256": "e8597466d0b3e0845154dcf1b55654916f61ae6686563440c79db024c86e47fe"
            },
            "downloads": -1,
            "filename": "unbound_console-0.6.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f3cf1023732ca78b6912ab8924c151c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7803,
            "upload_time": "2023-12-10T08:08:30",
            "upload_time_iso_8601": "2023-12-10T08:08:30.890350Z",
            "url": "https://files.pythonhosted.org/packages/73/f2/710a64632cbed1a375b3c42dbe05907b0bc6550e8940da085b8a6b621a78/unbound_console-0.6.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eb05d3750cf7740a1620ed5483db187da96e44aa54e6f881629314f275622597",
                "md5": "859885a2207b1494203a043faed504d0",
                "sha256": "3ef0a671cac3af15cff04e20c0bceae62b69792097bb1aebda827a38f32f3e75"
            },
            "downloads": -1,
            "filename": "unbound_console-0.6.3.tar.gz",
            "has_sig": false,
            "md5_digest": "859885a2207b1494203a043faed504d0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 7139,
            "upload_time": "2023-12-10T08:08:32",
            "upload_time_iso_8601": "2023-12-10T08:08:32.417056Z",
            "url": "https://files.pythonhosted.org/packages/eb/05/d3750cf7740a1620ed5483db187da96e44aa54e6f881629314f275622597/unbound_console-0.6.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-10 08:08:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dmachard",
    "github_project": "unbound-console",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "unbound-console"
}
        
Elapsed time: 0.14750s