мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| zadanie_6._mikrotik [2024/04/17 19:33] – wikiadmin | zadanie_6._mikrotik [2024/06/08 06:43] (текущий) – [Пишем скрипт получения данных с Mikrotik] wikiadmin | ||
|---|---|---|---|
| Строка 18: | Строка 18: | ||
| Сделаем Ping до маршрутизатора: | Сделаем Ping до маршрутизатора: | ||
| - | | + | |
| Если в ответе увидим | Если в ответе увидим | ||
| 64 bytes from 192.168.111.2: | 64 bytes from 192.168.111.2: | ||
| Строка 29: | Строка 29: | ||
| Для удаленного доступа на маршрутизатор используем программу ssh: | Для удаленного доступа на маршрутизатор используем программу ssh: | ||
| - | | + | |
| + | |||
| + | < | ||
| Эта команда задаёт имя пользователя = user1 и передает маршрутизатору команду получения списка пользователей WiFi: | Эта команда задаёт имя пользователя = user1 и передает маршрутизатору команду получения списка пользователей WiFi: | ||
| interface wireless registration-table print | interface wireless registration-table print | ||
| Строка 49: | Строка 52: | ||
| apt list | grep python3-librouteros | apt list | grep python3-librouteros | ||
| Устанавливаем библиотеку | Устанавливаем библиотеку | ||
| - | sudo apt install python3- librouteros | + | sudo apt install python3-librouteros |
| Ещё раз проверяем наличие пакета. | Ещё раз проверяем наличие пакета. | ||
| Строка 68: | Строка 71: | ||
| api = connect(host=' | api = connect(host=' | ||
| wifiuser=api.path(' | wifiuser=api.path(' | ||
| - | for item in wifiuser | + | for item in wifiuser: |
| print (item, “\n”) | print (item, “\n”) | ||
| api.close() | api.close() | ||
| Строка 99: | Строка 102: | ||
| cur = con.cursor() | cur = con.cursor() | ||
| Затем внутри цикла сформируем строку вставки данных в таблицу SQL: | Затем внутри цикла сформируем строку вставки данных в таблицу SQL: | ||
| - | | + | |
| Для проверки выведем получившуюся команду на экран: | Для проверки выведем получившуюся команду на экран: | ||
| - | | + | |
| Выполним скрипт, | Выполним скрипт, | ||
| Вставка данных в таблицу SQL выполняется командами: | Вставка данных в таблицу SQL выполняется командами: | ||
| - | | + | |
| - | | + | |
| В конце скрипта добавим: | В конце скрипта добавим: | ||
| - | | + | |
| Выполним скрипт и проверим наличие данных в таблице SQL: | Выполним скрипт и проверим наличие данных в таблице SQL: | ||
| - | | + | |
| - | | + | |
| Видим, что новые записи добавляются в дополнение ранее добавленным. | Видим, что новые записи добавляются в дополнение ранее добавленным. | ||
| Для того, чтобы получить в таблице только актуальные данные нужно предварительно очистить таблицу registrations SQL-командой: | Для того, чтобы получить в таблице только актуальные данные нужно предварительно очистить таблицу registrations SQL-командой: | ||
| DELETE FROM registrations | DELETE FROM registrations | ||
| Напишем в скрипте перед циклом: | Напишем в скрипте перед циклом: | ||
| - | | + | |
| - | | + | |
| __Итоговый скрипт__ | __Итоговый скрипт__ | ||
| Строка 122: | Строка 125: | ||
| from librouteros import connect | from librouteros import connect | ||
| import sqlite3 | import sqlite3 | ||
| - | con = sqlite3.connect('/ | + | con = sqlite3.connect('/ |
| cur = con.cursor() | cur = con.cursor() | ||
| api = connect(host=' | api = connect(host=' | ||
| wifiuser=api.path(' | wifiuser=api.path(' | ||
| - | Cur.execute(“DELETE FROM registrations”) | + | cur.execute(“DELETE FROM registrations”) |
| - | Con.commit() | + | con.commit() |
| - | for item in wifiuser | + | for item in wifiuser: |
| - | Insert | + | insert |
| - | Cur.execute(insert) | + | cur.execute(insert) |
| - | Con.commit() | + | con.commit() |
| api.close() | api.close() | ||
| </ | </ | ||
| - | //**Теперь наш сайт показывает данные о пользователях**// | + | |
| + | При выполнении, | ||
| + | |||
| + | Теперь у нас в таблице registrations базы данных есть список MAC-адресов активных пользователей WiFi, но в таблице users для пользователей указаны не корректные MAC-адреса (столбец mac). | ||
| + | |||
| + | Для того, чтобы запрос (который вы делали в самостоятельной работе) показывал список активных пользователей необходимо, | ||
| + | |||
| + | Зайдите в sqlite3 (в команде укажите правильный путь к вашей базе данных): | ||
| + | sqlite3 pythondb | ||
| + | |||
| + | Добавьте записи пользователей к правильными MAC-адресами, | ||
| + | INSERT INTO registrations (mac, signal) VALUES (' | ||
| + | |||
| + | Проверьте, | ||
| + | SELECT * FROM users; | ||
| + | |||
| + | //**Если всё сделано корректно то теперь наш сайт показывает данные об активных | ||
| Написанный вами на самостоятельной работе скрипт отображает список пользователей WiFi сети из базы данных. | Написанный вами на самостоятельной работе скрипт отображает список пользователей WiFi сети из базы данных. | ||