Ponywka Posted August 26 Share Posted August 26 (edited) Здраствуйте! Разрабатываю демона по типу kvas и хочу в модальном окне выбора интерфейса выводить вместо какого-нибудь UNIX'ового названия "nwg0" или же "ovpn_br0" выводить человеко-читаемое название интерфейса по типу "WireGuard [Home] (nwg0)". К сожалению из запроса `GET http://192.168.1.1/rci/show/interface/Wireguard1` имею лишь такую структуру, где нет ни слова о UNIX'овом названии интерфейса: { "id": "Wireguard1", "index": 1, "interface-name": "Wireguard1", "type": "Wireguard", "description": "Home", "traits": [ "Ip", "Ip6", "Wireguard" ], "link": "down", "connected": "no", "state": "down", "mtu": 1324, "tx-queue-length": 50, "global": false, "security-level": "public", "ipv6": {}, "wireguard": {}, "summary": { "layer": { "conf": "disabled", "link": "disabled", "ipv4": "disabled", "ipv6": "disabled", "ctrl": "disabled" } } } Видел, что kvas решает эту проблему использованием хука iflayerchanged и перезапуском всех интерфейсов, что считаю это решение не очень то и хорошим, ибо подобная информация как по мне должна быть как и в CLI Keenetic (Telnet), так и в REST API (а по возможности, кстати, хотелось бы иметь документацию по REST API, ибо её нигде не нашел). Где можно достать UNIX имя интерфейса без использования подобных костылей (из-за текущих ограничений Keenetic'а)? Edited August 26 by Ponywka 1 Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted August 26 Share Posted August 26 Цитата CLI Keenetic (Telnet), так и в REST API (а по возможности, кстати, хотелось бы иметь документацию по REST API, ибо её нигде не нашел). На самом деле совершенно не очевидно, потому что без установки opkg системное имя никому и нигде не может потребоваться - его просто нет в командах и выводе. Именно потому его там и нет. Мы подумаем, что можно сделать. 3 Quote Link to comment Share on other sites More sharing options...
avn Posted August 26 Share Posted August 26 1 минуту назад, Le ecureuil сказал: На самом деле совершенно не очевидно, потому что без установки opkg системное имя никому и нигде не может потребоваться - его просто нет в командах и выводе. Именно потому его там и нет. Мы подумаем, что можно сделать. В параллельной теме тоже спрашивал об этом. Ждем решения.... Quote Link to comment Share on other sites More sharing options...
Ponywka Posted August 26 Author Share Posted August 26 8 hours ago, Le ecureuil said: На самом деле совершенно не очевидно, потому что без установки opkg системное имя никому и нигде не может потребоваться - его просто нет в командах и выводе. Хм... Ну с этой точки зрения конечно верно... Просто хотелось бы, если не иметь возможность встраивать какие-то настройки во внутрь самой веб-морды Keenetic, то хотя-бы иметь возможность дёргать с самого Keenetic какие-то данные (например тот же человеко-читаемое название интерфейса, добавленное из интерфейса самого Keenetic) и рисовать уже свой интерфейс на каком-то порту (что я и хочу сделать) Перезапускать все интерфейсы я ну очень не хочу, ибо это долгий процесс. В таком случае уж лучше просто вывести UNIX'овое имя интерфейса, а пользователь пускай сам разбирается. Вообще та штука, которую я хочу сделать реализовывается и через CLI Keenetic'а, однако это засрёт таблицу маршрутов на самом роутере, чего я делать тоже не очень хочу, ибо отслеживать изменения оттуда ещё сложнее, породит ещё больше костылей, а также будет медленно выполняться. iptables+ipset как-то быстрее с этой задачей справятся. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted August 26 Share Posted August 26 Человекочитаемое имя лежит в поле description в выводе show interface. Quote Link to comment Share on other sites More sharing options...
Ponywka Posted August 26 Author Share Posted August 26 39 minutes ago, Le ecureuil said: Человекочитаемое имя лежит в поле description в выводе show interface. Я имел ввиду про софт, который я пишу, который использует iptables и работает с UNIX'овыми названиями интерфейсов, но который запущен на роутерах Keenetic. Quote Link to comment Share on other sites More sharing options...
Denis P Posted August 26 Share Posted August 26 (edited) 51 минуту назад, Ponywka сказал: Я имел ввиду про софт, который я пишу, который использует iptables и работает с UNIX'овыми названиями интерфейсов, но который запущен на роутерах Keenetic. можно брать адреса интерфейсов через ip address и сравнивать с теми что вам покажет ndmc -c show interface, по этому признаку и выяснять кто есть кто Edited August 26 by Denis P 1 Quote Link to comment Share on other sites More sharing options...
Ponywka Posted August 26 Author Share Posted August 26 53 minutes ago, Denis P said: можно брать адреса интерфейсов через ip address и сравнивать с теми что вам покажет ndmc -c show interface Ну, как вариант кстати 😕 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.