!!! Написал с ошибкой!!!
Чтобы отобразить результат выполнения команды arp -a в веб-интерфейсе LuCI (графическом интерфейсе OpenWRT), вам нужно настроить выполнение этой команды через SSH и затем вывести результаты в LuCI. Вот пошаговая инструкция:
### Шаг 1: Подключение к роутеру через SSH
Подключитесь к вашему роутеру с OpenWRT через SSH. Обычно это делается следующим образом:
ssh root@<IP_адрес_роутера>
Замените <IP_адрес_роутера> на реальный IP-адрес вашего роутера.
### Шаг 2: Выполнение команды arp -a
После подключения выполните команду arp -a в терминале:
arp -a
Вы увидите вывод таблицы ARP, который выглядит примерно так:
? (192.168.1.100) at aa:bb:cc:dd:ee:ff [ether] on br-lan
? (192.168.1.101) at ff:ee:dd:cc:bb:aa [ether] on br-lan
### Шаг 3: Настройка скрипта для автоматического обновления данных
Создайте скрипт, который будет периодически выполнять команду arp -a и сохранять её вывод в файл. Например, создайте файл /usr/bin/arp_monitor.sh со следующим содержимым:
#!/bin/sh
# Скрипт для периодического сбора данных arp
while true; do
# Получаем данные ARP
arp -a > /tmp/arp_table.txt
# Ждем 60 секунд перед следующей проверкой
sleep 60
done
Сделайте этот скрипт исполняемым:
chmod +x /usr/bin/arp_monitor.sh
Запустите скрипт в фоновом режиме:
nohup /usr/bin/arp_monitor.sh &
Теперь каждые 60 секунд файл /tmp/arp_table.txt будет обновляться с новыми данными ARP.
### Шаг 4: Отображение результатов в LuCI
Для отображения содержимого файла /tmp/arp_table.txt в LuCI, вам потребуется создать пользовательский модуль LuCI, который будет читать содержимое этого файла и выводить его на страницу.
#### Создание модуля LuCI
1. Создайте директорию для вашего модуля:
mkdir -p /etc/config/luci-arp-monitor
2. Создайте файл конфигурации /etc/config/luci-arp-monitor:
config luci-arp-monitor 'main'
option enabled '1'
3. Создайте файл страницы LuCI /usr/lib/lua/luci/controller/arp_monitor.lua:
module("luci.controller.arp_monitor")
local http = require "luci.http"
local sys = require "luci.sys"
function index()
entry({"admin", "network", "arp_monitor"}, form("cbi/tblsection"), _("ARP Monitor"), nil)
end
index()
4. Создайте файл формы /usr/lib/lua/luci/model/cbi/arp_monitor.lua:
module("luci.cbi.arp_monitor", package.seeall)
function get_arp_data()
local file = io.open("/tmp/arp_table.txt", "r")
if not file then return "" end
local data = file:read("*all")
file:close()
return data
end
function arp_monitor_section(self)
self.sectiontype = "simple"
self.template = "cbi/tblsectionfull"
self.rows = 10
self.sortable = false
self.editable = false
self.delete = false
self.add = false
self.cfgsections = function() return { } end
self.exteditors = {}
self.tablenames = {}
self:addfield_value("data", _("ARP Table"))
:value(get_arp_data())
end
### Шаг 5: Перезапуск LuCI
Перезапустите сервис LuCI, чтобы изменения вступили в силу:
/etc/init.d/uhttpd restart
Теперь, когда вы зайдете в веб-интерфейс LuCI и перейдете в раздел Network → ARP Monitor, вы должны увидеть таблицу ARP, автоматически обновляемую каждые 60 секунд.