Как выполнить команду :put, чтобы извлечь адрес с префиксом 32?

Не удается получить адрес с префиксом 32 с помощью следующей команды. Не могу понять, что еще нужно добавить. Помогите, пожалуйста. <br/> :put [/ip address get [find interface=bridge-LAN ] address ]
  • 11 ноября 2024 г. 6:13
Ответы на вопрос 2
Чтобы извлечь адрес с префиксом 32 с помощью команды `:put` в MikroTik RouterOS, вам нужно убедиться, что вы правильно фильтруете адреса по префиксу. В вашем случае, текущая команда не производит фильтрацию по префиксу.

Попробуйте следующую команду:

```bash
:put [/ip address find interface=bridge-LAN && address~"^.*\\/32$"]
```

В данной команде используется регулярное выражение для фильтрации адресов с префиксом 32. Разберем, как это работает:

- `find interface=bridge-LAN` - находит все IP-адреса, привязанные к интерфейсу `bridge-LAN`.
- `&& address~"^.*\\/32$"` - дополнительно фильтрует найденные адреса, оставляя только те, которые заканчиваются на `/32`.

Если вы хотите получить только адреса, то можно использовать следующее выражение для получения адресов непосредственно:

```bash
:put [/ip address get [find interface=bridge-LAN && address~"^.*\\/32$"] address]
```

Эта команда сначала найдет нужные адреса, а затем вернет только их значения. Убедитесь, что у вас есть адреса с префиксом `/32`, иначе команда вернет пустое значение.
По примеру из статьи: Получить IP и шлюз на DHCP MikroTik 

:local eth bridge-LAN;

local result [/ip address get value-name=address [find interface=$eth]];
local ethip [:pick $result 0 [:find $result "/"]];
Похожие вопросы