diff --git a/backend/routes/mikrotikConfigRoutes.js b/backend/routes/mikrotikConfigRoutes.js index 9f26439..ffb30c6 100644 --- a/backend/routes/mikrotikConfigRoutes.js +++ b/backend/routes/mikrotikConfigRoutes.js @@ -392,6 +392,28 @@ async function pingViaInterface(req, res) { } } + // 4) Последний фоллбек: если ifaceName до сих пор не определён, + // пробуем взять первый интерфейс, имя которого начинается с "ether" + // (обычно это основной WAN/LAN-порт). + if (!ifaceName) { + try { + const ifRes = await client.command('interface/print', { + '.proplist': ['name'], + '.query': ['name~^ether'], + }); + const data = ifRes?.data; + const interfaces = Array.isArray(data) ? data : (data ? [data] : []); + const firstEther = interfaces.find( + (it) => typeof it.name === 'string' && it.name.toLowerCase().startsWith('ether'), + ); + if (firstEther && typeof firstEther.name === 'string') { + ifaceName = firstEther.name; + } + } catch (_) { + // Если не получилось прочитать интерфейсы — просто продолжаем без interface. + } + } + const body = {}; body.address = target; body.count = Number(count) > 0 ? Number(count) : 5;