From 75f94979987682e5d1af03b8ddf45bd1d1402cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Thu, 14 Jan 2021 19:49:54 +0100 Subject: [PATCH] initial commit --- generate.py | 21 +++++++++++++++++++++ poetry.lock | 33 +++++++++++++++++++++++++++++++++ pyproject.toml | 15 +++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 generate.py create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/generate.py b/generate.py new file mode 100644 index 0000000..d4bded8 --- /dev/null +++ b/generate.py @@ -0,0 +1,21 @@ +import routeros_api +import os +import sys +import csv + +connection = routeros_api.RouterOsApiPool( + os.getenv("ROUTER_IP", "192.168.42.1"), + username='admin', + password=os.getenv("ROUTER_PASSWORD"), + plaintext_login=True +) +api = connection.get_api() + +registered = api.get_resource('/caps-man/registration-table').call('print') +leases = api.get_resource('/ip/dhcp-server/lease').call('print') + +writer = csv.writer(sys.stdout) +for client in registered: + if os.getenv("SSID", "anabasis") in client['ssid']: + lease = next(l for l in leases if l.get('active-mac-address') == client['mac-address']) + writer.writerow((lease['active-address'], lease['active-mac-address'], lease.get('host-name', "???"))) diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..56aab1c --- /dev/null +++ b/poetry.lock @@ -0,0 +1,33 @@ +[[package]] +name = "routeros-api" +version = "0.17.0" +description = "Python API to RouterBoard devices produced by MikroTik." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[metadata] +lock-version = "1.0" +python-versions = "^3.7" +content-hash = "3ab50217eea285c11ccd2f1b4ab50a57d19cdf03f1c8e71e6bfd63e3e225cb59" + +[metadata.files] +routeros-api = [ + {file = "RouterOS-api-0.17.0.tar.gz", hash = "sha256:1b9898460ecc4667b54e477d495b74c2f24ae0aac4c90dd0e62f23ec7eae8252"}, + {file = "RouterOS_api-0.17.0-py2.py3-none-any.whl", hash = "sha256:bf38da94a570875eaa87ff537558f765a4697dbce1a9753070194b687f441bf0"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..01df22c --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[tool.poetry] +name = "anabasis-clients" +version = "0.1.0" +description = "" +authors = ["Tomáš Mládek "] + +[tool.poetry.dependencies] +python = "^3.7" +routeros-api = "^0.17.0" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api"