# SLAAC Resolver
Discover SLAAC-configured IPv6 neighbors and resolve their mDNS names using Avahi.
## Overview
This tool scans a given network interface for IPv6 neighbors discovered via SLAAC, and attempts to resolve their names using `avahi-resolve-address`. It can be used both as a command-line utility and as a Python library.
## Installation
Clone the repository and install it in editable mode:
```bash
git clone https://github.com/cjuniorfox/slaac-resolver.git
cd slaac-resolver
pip install -e .
````
This will make the `slaac-resolver` command available on your system.
## Usage
### Command-Line Interface
```bash
slaac-resolver <interface> [--log-level <LOG_LEVEL>]
```
. `--log-level` is optional. Possible values: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`. Default is `INFO`.
Example:
```bash
slaac-resolver br0 --log-level DEBUG
```
The output is a JSON list of resolved neighbors, like:
```json
[
{
"hostname": ["mydevice", "local"],
"ipv6": ["fe80", "", "abcd", "1234", "5678", "9abc", "def0", "1234"]
}
]
```
### Python Library
You can also use the resolver in your Python code:
```python
from slaac_resolver import get_ipv6_neighbors
neighbors = get_ipv6_neighbors("br0", log_level=logging.DEBUG)
print(neighbors)
```
## Requirements
* Python 3.7+
* `ip` command (from iproute2)
* `avahi-resolve-address` (part of `avahi-utils`)
## License
GNU 3.0 License
Raw data
{
"_id": null,
"home_page": null,
"name": "slaac-resolver",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "slaac, ipv6, mdns, avahi, networking",
"author": null,
"author_email": "Carlos Junior <cjuniorfox@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/e2/01/03efb2d50e229edceb660e90cf03fe77a5bbd7cd59b5e05c1f36d58728d1/slaac_resolver-0.0.5.tar.gz",
"platform": null,
"description": "# SLAAC Resolver\n\nDiscover SLAAC-configured IPv6 neighbors and resolve their mDNS names using Avahi.\n\n## Overview\n\nThis tool scans a given network interface for IPv6 neighbors discovered via SLAAC, and attempts to resolve their names using `avahi-resolve-address`. It can be used both as a command-line utility and as a Python library.\n\n## Installation\n\nClone the repository and install it in editable mode:\n\n```bash\ngit clone https://github.com/cjuniorfox/slaac-resolver.git\ncd slaac-resolver\npip install -e .\n````\n\nThis will make the `slaac-resolver` command available on your system.\n\n## Usage\n\n### Command-Line Interface\n\n```bash\nslaac-resolver <interface> [--log-level <LOG_LEVEL>]\n```\n\n. `--log-level` is optional. Possible values: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`. Default is `INFO`.\n\nExample:\n\n```bash\nslaac-resolver br0 --log-level DEBUG\n```\n\nThe output is a JSON list of resolved neighbors, like:\n\n```json\n[\n {\n \"hostname\": [\"mydevice\", \"local\"],\n \"ipv6\": [\"fe80\", \"\", \"abcd\", \"1234\", \"5678\", \"9abc\", \"def0\", \"1234\"]\n }\n]\n```\n\n### Python Library\n\nYou can also use the resolver in your Python code:\n\n```python\nfrom slaac_resolver import get_ipv6_neighbors\n\nneighbors = get_ipv6_neighbors(\"br0\", log_level=logging.DEBUG)\nprint(neighbors)\n```\n\n## Requirements\n\n* Python 3.7+\n* `ip` command (from iproute2)\n* `avahi-resolve-address` (part of `avahi-utils`)\n\n## License\n\nGNU 3.0 License\n",
"bugtrack_url": null,
"license": "GNU General Public License v3.0 (GPLv3)",
"summary": "Discover SLAAC IPv6 neighbors and resolve their names via mDNS (Avahi)",
"version": "0.0.5",
"project_urls": {
"Homepage": "https://github.com/cjuniorfox/slaac-resolver"
},
"split_keywords": [
"slaac",
" ipv6",
" mdns",
" avahi",
" networking"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1cceff9dd732c416f764082692271240ad2e02c9c29ac84229773c27a469c9c7",
"md5": "83bddeb32b2c605c3d322783aa5ba0c4",
"sha256": "a1a9ab3d42fa1685b9c1986e451f5ec33138fdc4110936f5915975bbe003fd9a"
},
"downloads": -1,
"filename": "slaac_resolver-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "83bddeb32b2c605c3d322783aa5ba0c4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 16359,
"upload_time": "2025-07-13T23:58:22",
"upload_time_iso_8601": "2025-07-13T23:58:22.481213Z",
"url": "https://files.pythonhosted.org/packages/1c/ce/ff9dd732c416f764082692271240ad2e02c9c29ac84229773c27a469c9c7/slaac_resolver-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e20103efb2d50e229edceb660e90cf03fe77a5bbd7cd59b5e05c1f36d58728d1",
"md5": "69c7532fa297f9c4b16b90a8005b81bb",
"sha256": "22bd6bfc71083673d29ef2171ebe91165d9fbe17338aac24f0c899a597f5ba9a"
},
"downloads": -1,
"filename": "slaac_resolver-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "69c7532fa297f9c4b16b90a8005b81bb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 15483,
"upload_time": "2025-07-13T23:58:23",
"upload_time_iso_8601": "2025-07-13T23:58:23.785709Z",
"url": "https://files.pythonhosted.org/packages/e2/01/03efb2d50e229edceb660e90cf03fe77a5bbd7cd59b5e05c1f36d58728d1/slaac_resolver-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 23:58:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cjuniorfox",
"github_project": "slaac-resolver",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "slaac-resolver"
}