MikroTik.by
For every complex problem, there is a solution that is simple, neat, and wrong.
- Список форумовФорум по операционной системе MikroTik RouterOSБеспроводная связь
- Поиск
Как посмотреть список подключенных пользователей?
Wi-fi и всё с ним связанное
14 сообщений • Страница 1 из 1
Sweik Сообщения: 77 Зарегистрирован: 14 июн 2018, 11:05 Откуда: Оттуда
Как посмотреть список подключенных пользователей?
Сообщение Sweik » 07 фев 2019, 13:42
только не настраивал пул адресов на точке доступа. До CAPsMAN-a еще не добрался, это в проекте
Вопрос такой — как можно посмотреть список подключенных клиентов?
Малоинформативно список отображается Wireless—> Registration, но там нет ни IP-адреса, ни имени хоста.
Заранее и с уважением
С уважением
Chupaka Сообщения: 3758 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: Как посмотреть список подключенных пользователей?
Сообщение Chupaka » 07 фев 2019, 15:56
QuickSet откройте — он там, вроде, собирает в кучу информацию из разных мест =)
Именно в Wireless -> Registration и надо смотреть подключенных к WiFi клиентов. И WiFi понятия не имеет об IP-адресах и прочих именах хостов, это удел IP -> DHCP Server -> Leases.
Sweik Сообщения: 77 Зарегистрирован: 14 июн 2018, 11:05 Откуда: Оттуда
Re: Как посмотреть список подключенных пользователей?
Сообщение Sweik » 13 фев 2019, 18:08
Добрый день.
К «бантикам» вернусь позже
С уважением
Ansy Сообщения: 3 Зарегистрирован: 09 июн 2018, 17:50
Re: Как посмотреть список подключенных пользователей?
Сообщение Ansy » 11 мар 2019, 14:34
Chupaka писал(а): ↑ 07 фев 2019, 15:56 И WiFi понятия не имеет об IP-адресах и прочих именах хостов, это удел IP -> DHCP Server -> Leases.
Но таки для удобства умеет показывать Last IP, если на вкладке Wireless — Registration справа включить в выпадающем списке соответствующую колонку. А вот, например, IPv6 уже только по MAC-адресу сопоставлять в других таблицах.
chas99 Сообщения: 127 Зарегистрирован: 10 фев 2017, 08:52
Re: Как посмотреть список подключенных пользователей?
Сообщение chas99 » 17 мар 2020, 05:42
Подниму тему, что бы не создавать новую =)
Chupaka писал(а): ↑ 07 фев 2019, 15:56 Именно в Wireless -> Registration и надо смотреть подключенных к WiFi клиентов. И WiFi понятия не имеет об IP-адресах и прочих именах хостов, это удел IP -> DHCP Server -> Leases.
В Regitration отображаются активные клиенты, а как увидеть всех кто подключался ранее ?
возможно, через скрипт, при получении адреса по dhcp сохранить в Address list ?
address=Active Address
list=Wifi
comment=»Active MAC Address + Avtive Host Name»
Chupaka Сообщения: 3758 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: Как посмотреть список подключенных пользователей?
Сообщение Chupaka » 17 мар 2020, 18:17
Может, вам настроить логирование на удалённый сервер? Или хотя бы в отдельный файл.
Сохранять в Address-List можно, но только до тех пор, пока адреса не начнут повторяться — здесь сохранение закончится.
chas99 Сообщения: 127 Зарегистрирован: 10 фев 2017, 08:52
Re: Как посмотреть список подключенных пользователей?
Сообщение chas99 » 18 мар 2020, 09:22
Chupaka писал(а): ↑ 17 мар 2020, 18:17 Может, вам настроить логирование на удалённый сервер? Или хотя бы в отдельный файл.
Сохранять в Address-List можно, но только до тех пор, пока адреса не начнут повторяться — здесь сохранение закончится.
логично, про повторы как-то я и не подумал
Chupaka Сообщения: 3758 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: Как посмотреть список подключенных пользователей?
Сообщение Chupaka » 18 мар 2020, 12:53
Не, ну тут можно извращаться бесконечно: записывать всю нужную информацию в комментарий, а адреса просто последовательно добавлять: 0.0.0.1, 0.0.0.2, и т.д.
chas99 Сообщения: 127 Зарегистрирован: 10 фев 2017, 08:52
Re: Как посмотреть список подключенных пользователей?
Сообщение chas99 » 18 мар 2020, 13:40
В идеале цель — хотелось бы видеть кто подключался по wifi, (первый и последний раз) и итоговый трафик : отправил / получил.
Если честно, то такое видел в unifi cloud key
Chupaka Сообщения: 3758 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: Как посмотреть список подключенных пользователей?
Сообщение Chupaka » 18 мар 2020, 13:55
chas99 писал(а): ↑ 18 мар 2020, 13:40 Если честно, то такое видел в unifi cloud key
Это ведь отдельный программный контроллер, а не точка доступа? Ну, увы, у MikroTik такого готового решения нет. Можно посмотреть на сторонние RADIUS’ы, всё равно на отдельную машину ставить надо.
chas99 Сообщения: 127 Зарегистрирован: 10 фев 2017, 08:52
Re: Как посмотреть список подключенных пользователей?
Сообщение chas99 » 19 мар 2020, 02:53
Chupaka писал(а): ↑ 18 мар 2020, 13:55 Это ведь отдельный программный контроллер, а не точка доступа? Ну, увы, у MikroTik такого готового решения нет. Можно посмотреть на сторонние RADIUS’ы, всё равно на отдельную машину ставить надо.
Да отдельная железка, без которой, увы, не настроить точки доступа, зато после настройки AP могут работать из без этого контроллера
Спасибо, вообщем смысл (направление) понятен !
Chupaka Сообщения: 3758 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: Как посмотреть список подключенных пользователей?
Сообщение Chupaka » 19 мар 2020, 14:35
chas99 писал(а): ↑ 19 мар 2020, 02:53 зато после настройки AP могут работать из без этого контроллера
Т.е. каждая точка сама показывает историю подключений с трафиками, без участия контроллера?
chas99 Сообщения: 127 Зарегистрирован: 10 фев 2017, 08:52
Re: Как посмотреть список подключенных пользователей?
Сообщение chas99 » 20 мар 2020, 09:45
Chupaka писал(а): ↑ 19 мар 2020, 14:35 Т.е. каждая точка сама показывает историю подключений с трафиками, без участия контроллера?
нет, увы! более того без контроллера с точками вообще ничего нельзя сделать, никак на них не зайти, они просто работают как были ранее настроены и всё, т.е. через них сеть/инет работает, а внутрь точки не попасть =)
Где посмотреть список всех подключенных клиентов (ip+mac) в Winbox Mikrotik?
Где посмотреть список всех подключенных клиентов (ip+mac) в Winbox Mikrotik в частности машины , на которых вручную прописаны ip ?
- Вопрос задан более трёх лет назад
- 71848 просмотров
Комментировать
Решения вопроса 1
Иван @LiguidCool
Interfaces -> bridge-local(или кто он у вас там) -> Правой мышки, пункт Torch. Жмете Start, собираете статистику. Показывает активных клиентов, не показывает MAC.
Tools — > IP Scan — собственно «пингатор«, но по файерволу может не показать.
Ответ написан более трёх лет назад
Кирилл Казаков @mausspb Автор вопроса
1) вариант не показывает принтеры и nas
2) 2-й вариант конечно может не показать , но мне показал все что необходимо . Спасибо.
Я думал есть что-нибудь попроще, типа все клиенты .
Mikrotik как посмотреть ip подключенных устройств
Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
Скрипт вывода списка подключенных к роутеру устройств
Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
drpioneer Сообщения: 121 Зарегистрирован: 30 май 2013, 10:20
Нарисовал на досуге скрипт, выводящий список задействованных интерфейсов роутера и подключенных к ним устройств. Надеюсь пригодится для упрощения ревизии устройств в сети. Особенность скрипта в том, что используется информация от DHCP сервера, где всем клиентам предоставлены СТАТИЧЕСКИЕ адреса, при этом задействованы комментарии, в которых описаны названия DHCP клиентов.
Код нужно скопировать в буфер и просто вставить в терминале Mikrotik’а:
# Script for building a network table # https://forummikrotik.ru/viewtopic.php?p=70575#p70575 # tested on ROS 6.46.5 # updated 2020/05/20 # Enumeration of interfaces foreach interfaceIndex in=([ /interface find; ]) do= < :local interfaceName ([ /interface get $interfaceIndex name; ]); :local bridgeIndexes ([ /interface bridge find; ]); :local bridgeIP ("not IP-address");; :local bridgeName ("not bridge name"); :local bridgeHosts; # Enumeration of bridges foreach bridgeIndex in=$bridgeIndexes do=< :set bridgeName ([ /interface bridge get $bridgeIndex name; ]); :set bridgeHosts ([ /interface bridge host find bridge=$bridgeName; ]); # Find IP address of bridges foreach ipAddressIndex in=([ /ip address find; ]) do=< :local interfaceNameIpAddress ([ /ip address get $ipAddressIndex interface; ]); :local interfaceHostIpAddress ([ /ip address get $ipAddressIndex address; ]); if ($interfaceNameIpAddress = $bridgeName) do=< :set bridgeIP ($interfaceHostIpAddress); >> # Enumeration of hosts foreach bridgeHost in=$bridgeHosts do= < :local hostMAC ([ /interface bridge host get $bridgeHost mac-address; ]); :local hostInterface ([ /interface bridge host get $bridgeHost on-interface; ]); :local hostComment ("no comments"); :local hostName ("not host name"); :local hostIP ("not IP-address"); if ([ /interface bridge host get $bridgeHost local; ] = true) do=< :set hostName ([ /system resource get board-name; ]); :set hostIP ($bridgeIP); ># Checking for MAC-address in DHCP leases if ([ /ip dhcp-server lease find mac-address=$hostMAC; ] != "") do= < :local hostNumber ([ /ip dhcp-server lease find mac-address=$hostMAC; ]) :set hostName ([ /ip dhcp-server lease get $hostNumber host-name; ]); :set hostComment ([ /ip dhcp-server lease get $hostNumber comment; ]); :set hostIP ([ /ip dhcp-server lease get $hostNumber address; ]); ># Output if interface and host names match if (($interfaceName = $hostInterface) && ($interfaceName != $bridgeName)) do= < :put ($hostInterface." ->\t".$hostName." (".$hostMAC.")\t remark: ".$hostComment." -> \t".$hostIP." -> \t".$bridgeName); > > > # Enumeration ip addresses foreach ipAddressIndex in=([ /ip address find; ]) do= < :local interfaceNameIpAddress ([ /ip address get $ipAddressIndex interface; ]); :local interfaceHostIpAddress ([ /ip address get $ipAddressIndex address; ]); :local interfaceMACAddress ([ :tostr [ /interface get [ /interface find name=$interfaceNameIpAddress ; ] mac-address ]]); if ($interfaceMACAddress = "") do=< :set interfaceMACAddress ("not MAC-address"); >:local hostName ([ /system resource get board-name; ]); if ($interfaceName = $interfaceNameIpAddress) do= < :put ($interfaceNameIpAddress." ->\t".$hostName." (".$interfaceMACAddress.") -> \t".$interfaceHostIpAddress); > > >
Живой пример работы скрипта:
ether1 -> DESKTOP-O15N7PI (04:92:xx:xx:xx:xx) remark: NB Asus FX504GM ether -> 192.168.xxx.xxx -> bridge ether1 -> DESKTOP-FJV3R7T (10:78:xx:xx:xx:xx) remark: PC Masik ether -> 192.168.xxx.xxx -> bridge ether1 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge ether3 -> DESKTOP-SD629I9 (54:04:xx:xx:xx:xx) remark: PC Egor ether -> 192.168.xxx.xxx -> bridge ether3 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge ether4 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge ether4 -> steamlink-9A6B (E0:31:xx:xx:xx:xx) remark: MP SteamLink ether -> 192.168.xxx.xxx -> bridge ether6 -> GIGASET C610A-IP (7C:2F:xx:xx:xx:xx) remark: Gigaset C610A IP ether -> 192.168.xxx.xxx -> bridge ether6 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge ether8 -> DUNE-HD (00:16:xx:xx:xx:xx) remark: MP Dune HD-301 ether -> 192.168.xxx.xxx -> bridge ether8 -> DESKTOP-08AEN7 (5C:F9:xx:xx:xx:xx) remark: NB Dell inspiron 7720 ether -> 192.168.xxx.xxx -> bridge ether8 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge ether9-ulan-ISP -> RB2011UAS-2HnD (04:92:xx:xx:xx:xx) -> 176.118.xxx.xxx/20 ether10-qwerty-ISP -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) -> 79.164.xxx.xxx/20 wlan1 -> RedmiNote7-Redmi (20:34:xx:xx:xx:xx) remark: Redmi Note 7 Egor wifi -> 192.168.xxx.xxx -> bridge wlan1 -> RedmiNote6Pro-Redmi (48:2C:xx:xx:xx:xx) remark: Redmi Note 6Pro Masik wifi -> 192.168.xxx.xxx -> bridge wlan1 -> RedmiNote6Pro-Redmi (48:2C:xx:xx:xx:xx) remark: Redmi Note 6Pro Pioneer wifi -> 192.168.xxx.xxx -> bridge wlan1 -> BRW70188BBD950F (70:18:xx:xx:xx:xx) remark: Brother MFC-9330CDW wifi -> 192.168.xxx.xxx -> bridge wlan1 -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) remark: no comments -> 192.168.xxx.xxx/24 -> bridge wlan1 -> RedmiNote7-ASkolDas (E0:DC:xx:xx:xx:xx) remark: Redmi Note 7 Danya wifi -> 192.168.xxx.xxx -> bridge bridge -> RB2011UAS-2HnD (D4:CA:xx:xx:xx:xx) -> 192.168.xxx.xxx/24 bridge_guest -> RB2011UAS-2HnD (D6:CA:xx:xx:xx:xx) -> 10.11.xxx.xxx/24 sstp-xxxxxovo -> RB2011UAS-2HnD (not MAC-address) -> 192.168.xxx.xxx/32 sstp-xxxxxxovo -> RB2011UAS-2HnD (not MAC-address) -> 192.168.xxx.xxx/32
На одном из удаленных объектов при помощи этого же скрипта поймал вот такое:
ether5 -> not host name (00:00:02:00:00:00) remark: no comments -> not IP-address -> bridge ether5 -> not host name (00:00:03:00:00:00) remark: no comments -> not IP-address -> bridge
Теперь разбираюсь, что это за нЕвидаль такая.
Надо признать, что до запуска скрипта не подозревал о проблемах в сети.
Конструктивная критика и усовершенствования только приветствуются.
drpioneer Сообщения: 121 Зарегистрирован: 30 май 2013, 10:20
Вариант скрипта со структурированным выводом, но возможным обрезанием текста:
# Script for building a network table # https://forummikrotik.ru/viewtopic.php?p=70575#p70575 # tested on ROS 6.46.5 # updated 2020/05/20 # Enumeration of interfaces foreach interfaceIndex in=([ /interface find; ]) do= < :local interfaceName ([ /interface get $interfaceIndex name; ]); :local bridgeIndexes ([ /interface bridge find; ]); :local bridgeIP ("not IP-address");; :local bridgeName ("not bridge name"); :local bridgeHosts; # Enumeration of bridges foreach bridgeIndex in=$bridgeIndexes do=< :set bridgeName ([ /interface bridge get $bridgeIndex name; ]); :set bridgeHosts ([ /interface bridge host find bridge=$bridgeName; ]); # Find IP address of bridges foreach ipAddressIndex in=([ /ip address find; ]) do=< :local interfaceNameIpAddress ([ /ip address get $ipAddressIndex interface; ]); :local interfaceHostIpAddress ([ /ip address get $ipAddressIndex address; ]); if ($interfaceNameIpAddress = $bridgeName) do=< :set bridgeIP ($interfaceHostIpAddress); >> # Enumeration of hosts foreach bridgeHost in=$bridgeHosts do= < :local hostMAC ([ /interface bridge host get $bridgeHost mac-address; ]); :local hostInterface ([ /interface bridge host get $bridgeHost on-interface; ]); :local hostComment ("no comments"); :local hostName ("not host name"); :local hostIP ("not IP-address"); if ([ /interface bridge host get $bridgeHost local; ] = true) do=< :set hostName ([ /system resource get board-name; ]); :set hostIP ($bridgeIP); ># Checking for MAC-address in DHCP leases if ([ /ip dhcp-server lease find mac-address=$hostMAC; ] != "") do= < :local hostNumber ([ /ip dhcp-server lease find mac-address=$hostMAC; ]) :set hostName ([ /ip dhcp-server lease get $hostNumber host-name; ]); :set hostComment ([ /ip dhcp-server lease get $hostNumber comment; ]); :set hostIP ([ /ip dhcp-server lease get $hostNumber address; ]); ># Output if interface and host names match if (($interfaceName = $hostInterface) && ($interfaceName != $bridgeName)) do= < :local printInterface ([ :pick [( $hostInterface." " )] 0 16 ]); :local printNameMAC ([ :pick [( $hostName." (".$hostMAC.") " )] 0 44 ]); :local printComment ([ :pick [( $hostComment." " )] 0 30 ]); :local printIP ([ :pick [( $hostIP." " )] 0 20 ]); :put ($printInterface." ".$printNameMAC." remark: ".$printComment." ".$printIP." ".$bridgeName); >> > # Enumeration ip addresses foreach ipAddressIndex in=([ /ip address find; ]) do= < :local interfaceNameIpAddress ([ /ip address get $ipAddressIndex interface; ]); :local interfaceHostIpAddress ([ /ip address get $ipAddressIndex address; ]); :local interfaceMACAddress ([ :tostr [ /interface get [ /interface find name=$interfaceNameIpAddress ; ] mac-address ]]); if ($interfaceMACAddress = "") do=< :set interfaceMACAddress ("not MAC-address"); >:local hostName ([ /system resource get board-name; ]); if ($interfaceName = $interfaceNameIpAddress) do= < :local printNameIpAddress ([ :pick [( $interfaceNameIpAddress." " )] 0 16 ]); :local printNameMAC ([ :pick [( $hostName." (".$interfaceMACAddress.") " )] 0 44 ]); :put ($printNameIpAddress." ".$printNameMAC." remark: no comments ".$interfaceHostIpAddress); >> >
Sertik Сообщения: 1538 Зарегистрирован: 15 сен 2017, 09:03
Очень хороший и полезный скрипт. Доработаете его чтобы он выводил не только устройства от DHCP-сервера, отмеченные как static-IP, но и dinamic-IP, а также устройства, которым даны статические IP (из ARP). То есть чтобы мог искать все устройства, подключенные к Микротику вне зависимости как им назначены IP-адреса.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
podarok66 Модератор Сообщения: 4288 Зарегистрирован: 11 фев 2012, 18:49 Откуда: МО
Горячо поддерживаю, очень интересный вариант. Спасибо.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем.
Sertik Сообщения: 1538 Зарегистрирован: 15 сен 2017, 09:03
Попробовал скрипт на нескольких своих роутерах.
Вот какие замечания/предложения:
1. Если скрипт находит на интерфейсе mac-адрес устройства, которого нет в /ip dhcp-server lease, то надо поискать его в других местах . например в (в /ip arp и взять оттуда также и комментарий к этому хосту (устройству)
2. Если уж скрипт находит VPN-интерфейсы (типа pptp, l2tp, ovpn и т.д., то можно из них брать информацию и выводить её тоже (адреса, клиентов и прочее, что можно «добыть»)
3. Надо искать и выводить информацию о динамических IP-хостах с опрашиваемых интерфейсов.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik Сообщения: 1538 Зарегистрирован: 15 сен 2017, 09:03
Поиск хостов и печать их из /ip arp (пример)
foreach i in=[ /ip arp find] do= :local ipARPaddress [/ip arp get $i address];
:local ipARPmacaddress [/ip arp get $i mac];
:local ARPface [/ip arp get $i interface];
:local ARPcomment [/ip arp get $i comment];
:if ([:len $ipARPmacaddress]!=0) do= :log info («$ipARPaddress».» $ipARPmacaddress».» $ARPface».» $ARPcomment»)
>
>
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik Сообщения: 1538 Зарегистрирован: 15 сен 2017, 09:03
Пропал автор замечательного скрипта . Не отвечает ничего
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
podarok66 Модератор Сообщения: 4288 Зарегистрирован: 11 фев 2012, 18:49 Откуда: МО
Появится, я надеюсь. Видимо сидит скрипты пишет.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем.
drpioneer Сообщения: 121 Зарегистрирован: 30 май 2013, 10:20
Родилась очередная версия скрипта, с полностью переделанной логикой работы:
# Script for building a network table # https://forummikrotik.ru/viewtopic.php?p=70575 # tested on ROS 6.47 # updated 2020/09/05 :global troubleCode 0; :global errorString ""; # interface list :global interfaceIndexArray 0; :global interfaceArray ; foreach interfaceIndex in=[ /interface find running=yes; ] do=< :do < :local interfaceName ([ /interface get $interfaceIndex name; ]); :local interfaceComment ([:tostr [ /interface get $interfaceIndex comment; ]]); :local interfaceMAC ([:tostr [ /interface get $interfaceIndex mac-address; ]]); :local interfaceHost ([ /system resource get board-name; ]); :set ($interfaceArray->$interfaceIndexArray) ; #:put ($interfaceArray->$interfaceIndexArray); :set interfaceIndexArray ($interfaceIndexArray + 1); > on-error= < :set troubleCode 1; >> :set interfaceIndexArray ($interfaceIndexArray - 1); # interface bridge host list :global bridgeHostIndexArray 0; :global bridgeHostArray ; foreach bridgeHost in=[ /interface bridge host find; ] do= < :do < :local hostMAC ([ /interface bridge host get $bridgeHost mac-address; ]); :local hostBridge ([ /interface bridge host get $bridgeHost bridge; ]); :local hostInterface ([ /interface bridge host get $bridgeHost on-interface; ]); :local hostComment (""); :local hostName (""); :local hostIP (""); if ([ /interface bridge host get $bridgeHost local; ] = true) do=< :set hostName ([ /system resource get board-name; ]); :set hostIP ([ /ip address get [ find interface=$hostBridge ] address; ]); :set hostIP ([:pick $hostIP 0 [:find $hostIP "/"]]); >else= < :do < :set hostName ([ /ip dhcp-server lease get [ find mac-address=$hostMAC ] host-name; ]); :set hostIP ([ /ip dhcp-server lease get [ find mac-address=$hostMAC ] address; ]); :set hostComment ([ /ip dhcp-server lease get [ find mac-address=$hostMAC ] comment; ]); >on-error= < :set hostName ([ /ip dhcp-server lease get [ find mac-address=$hostMAC dynamic=yes ] host-name; ]); :set hostIP ([ /ip dhcp-server lease get [ find mac-address=$hostMAC dynamic=yes ] address; ]); >> :set ($bridgeHostArray->$bridgeHostIndexArray) ; #:put ($bridgeHostArray->$bridgeHostIndexArray); :set bridgeHostIndexArray ($bridgeHostIndexArray + 1); > on-error= < :set troubleCode 2; >> :set bridgeHostIndexArray ($bridgeHostIndexArray - 1); # ip address list :global ipAddressIndexArray 0; :global ipAddressArray ; foreach ipAddress in=([ /ip address find; ]) do=< :do < :local ipAddressInterface ([ /ip address get $ipAddress interface; ]); :local ipAddressIP ([ /ip address get $ipAddress address; ]); :set ipAddressIP ([:pick $ipAddressIP 0 [:find $ipAddressIP "/"]]); :local ipAddressComment ([ /ip address get $ipAddress comment; ]); :local interfaceHost ([ /system resource get board-name; ]); :local interfaceMACAddress ([ /interface get [ /interface find name=$ipAddressInterface ; ] mac-address ]); if ([:tostr ($interfaceMACAddress)] != "") do=< :set ($ipAddressArray->$ipAddressIndexArray) ; #:put ($ipAddressArray->$ipAddressIndexArray); :set ipAddressIndexArray ($ipAddressIndexArray + 1); > > on-error= < :set troubleCode 3; >> :set ipAddressIndexArray ($ipAddressIndexArray - 1); # ip arp list :global ipArpIndexArray 0; :global ipArpArray ; foreach ipArp in=([ /ip arp find; ]) do=< :do < :local ipArpInterface ([ /ip arp get $ipArp interface; ]); :local ipArpIP ([ /ip arp get $ipArp address; ]); :local ipArpComment ([ /ip arp get $ipArp comment; ]); :local ipArpMACAddress ([ /ip arp get $ipArp mac-address; ]); :set ($ipArpArray->$ipArpIndexArray) ; #:put ($ipArpArray->$ipArpIndexArray); :set ipArpIndexArray ($ipArpIndexArray + 1); > on-error= < :set troubleCode 4; >> :set ipArpIndexArray ($ipArpIndexArray - 1); # ip dhcp list :global ipDhcpIndexArray 0; :global ipDhcpArray ; foreach ipDhcp in=([ /ip dhcp-server lease find; ]) do=< :do < :local ipDhcpName ([ /ip dhcp-server lease get $ipDhcp host-name; ]); :local ipDhcpIP ([ /ip dhcp-server lease get $ipDhcp address; ]); :local ipDhcpComment ([ /ip dhcp-server lease get $ipDhcp comment; ]); :local ipDhcpMAC ([ /ip dhcp-server lease get $ipDhcp mac-address; ]); :set ($ipDhcpArray->$ipDhcpIndexArray) ; #:put ($ipDhcpArray->$ipDhcpIndexArray); :set ipDhcpIndexArray ($ipDhcpIndexArray + 1); > on-error= < :set troubleCode 5; >> :set ipDhcpIndexArray ($ipDhcpIndexArray - 1); # ip route list :global ipRoutesIndexArray 0; :global ipRoutesArray ; foreach ipRoutes in=([ /ip route find active=yes distance=0;]) do=< :do < :local ipRouteName ([ /ip route get $ipRoutes gateway; ]); :local ipRouteIP ([ /ip route get $ipRoutes pref-src; ]); :local ipRouteComment ([ /ip route get $ipRoutes comment; ]); :local ipRouteDstAddr ([ /ip route get $ipRoutes dst-address; ]); :set ipRouteDstAddr ([:pick $ipRouteDstAddr 0 [:find $ipRouteDstAddr "/"]]); :set ($ipRoutesArray->$ipRoutesIndexArray) ; #:put ($ipRoutesArray->$ipRoutesIndexArray); :set ipRoutesIndexArray ($ipRoutesIndexArray + 1); > on-error= < :set troubleCode 6; >> :set ipRoutesIndexArray ($ipRoutesIndexArray - 1); # build new list :global n 2; :global newArray ; :set ($newArray->0) ; :set ($newArray->1) ; for i from=0 to=$interfaceIndexArray do=< for j from=0 to=$bridgeHostIndexArray do=< :local findDestination [:find key=($bridgeHostArray->$j->0) in=($interfaceArray->$i)]; if ([:tostr [$findDestination]] != "" && ($bridgeHostArray->$j->4) != ($bridgeHostArray->$j->0)) do=< if (($bridgeHostArray->$j->2) = ($interfaceArray->$i->2)) do=< :set ($newArray->$n) <$n-1;($bridgeHostArray->$j->0);($bridgeHostArray->$j->1);($bridgeHostArray->$j->2);($bridgeHostArray->$j->3);($bridgeHostArray->$j->4);($interfaceArray->$i->4)>; > else=< :set ($newArray->$n) <$n-1;($bridgeHostArray->$j->0);($bridgeHostArray->$j->1);($bridgeHostArray->$j->2);($bridgeHostArray->$j->3);($bridgeHostArray->$j->4);($bridgeHostArray->$j->5)>; > :set n ($n + 1); > > for j from=0 to=$ipRoutesIndexArray do=< :local findDestination [:find key=($interfaceArray->$i->0) in=($ipRoutesArray->$j->0)]; if ([:tostr [$findDestination]] != "") do=< :set ($newArray->$n) <$n-1;($interfaceArray->$i->0);($interfaceArray->$i->1);($interfaceArray->$i->2);($ipRoutesArray->$j->3);($ipRoutesArray->$j->2);($interfaceArray->$i->4)>; :set n ($n + 1); > > > :set n ($n - 1); if ($troubleCode != 0) do= < :set errorString (". ATTENTION. An error occurred when creating list N".$troubleCode); ># list output to terminal for i from=0 to=$n do=< :set ($newArray->$i->0) ([:pick [:tostr [($newArray->$i->0 . " ")]] 0 6 ]); :set ($newArray->$i->1) ([:pick [:tostr [($newArray->$i->1 . " ")]] 0 21 ]); :set ($newArray->$i->2) ([:pick [:tostr [($newArray->$i->2 . " ")]] 0 25 ]); :set ($newArray->$i->3) ([:pick [:tostr [($newArray->$i->3 . " ")]] 0 19 ]); :set ($newArray->$i->4) ([:pick [:tostr [($newArray->$i->4 . " ")]] 0 17 ]); :set ($newArray->$i->5) ([:pick [:tostr [($newArray->$i->5 . " ")]] 0 17 ]); :set ($newArray->$i->6) ([:pick [:tostr [($newArray->$i->6 . " ")]] 0 25 ]); :put ($newArray->$i." "); > :put ($errorString);
Замечания, пожелания, улучшения приветствуются.
podarok66 Модератор Сообщения: 4288 Зарегистрирован: 11 фев 2012, 18:49 Откуда: МО
Запустил в домашней сети. Выхлоп:
NUMBER ;INTERFACE ;HOST NAME ;MAC ADDRESS ;IP ADDRESS ;BRIDGE ;COMMENT ; ; ; ; ; ; 1 ;ether1 ;RedmiNote7-Redmi ;20:34:FB:B7:BC:AF ;192.168.88.165 ;bridge ;Semen phone 2 ;ether1 ;Samsung ;28:39:5E:42:EC:8F ;192.168.88.210 ;bridge ;TV 3 ;ether1 ;RedmiNote8T-Redmi ;4C:63:71:5A:E8:C9 ;192.168.88.38 ;bridge ;RedmiNote8T-Redmi 4 ;ether1 ;hEX_POE ;64:D1:54:3C:01:68 ;192.168.88.40 ;bridge ; 5 ;ether1 ;wAP ;64:D1:54:FF:57:66 ;192.168.88.50 ;bridge ; 6 ;ether1 ;Papa ;D4:3D:7E:E3:09:11 ;192.168.88.250 ;bridge ;My PC 7 ;ether3 ;hEX ;64:D1:54:A1:64:E7 ;192.168.88.1 ;bridge ;mAP 8 ;ether3 ; ;6C:3B:6B:FA:02:6B ;192.168.88.100 ;bridge ; 9 ;ether4 ;DESKTOP-LQ57K59 ;00:F1:F3:03:2E:C6 ;192.168.88.203 ;bridge ;Sava 10 ;ether4 ;hEX ;64:D1:54:A1:64:E8 ;192.168.88.1 ;bridge ;Sava comp 11 ;ether5 ;hEX ;64:D1:54:A1:64:E9 ;10.201.7.18 ;10.201.7.0 ;WAN 12 ;bridge ;hEX ;64:D1:54:A1:64:E5 ;192.168.88.1 ;192.168.88.0 ; 13 ;loopback ;hEX ;62:D7:B9:1F:F2:EB ;10.255.255.1 ;10.255.255.1 ; 14 ;ovpn-out-1195-DO ;hEX ;02:0E:38:68:2C:51 ;10.12.0.2 ;10.12.0.1 ;No activity dublicat cana 15 ;ovpn-out-DO ;hEX ;02:0E:38:68:2C:51 ;10.9.0.2 ;10.9.0.1 ;General canal to Europa 16 ;sstp-client-mic ;hEX ; ;10.10.10.1 ;10.10.10.2 ;To Papa flat tunnel . ATTENTION. An error occurred when creating list N2
Два интересных момента.
1. Что такое . ATTENTION. An error occurred when creating list N2 ?
2. И зачем точка с запятой везде в выводе присутствует?
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? . Тогда Netinstal’ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем.
- Общие правила форума и полезная информация
- FAQ (Для начинающих)
- MikroTik RouterOS
- ↳ Готовые конфигурации Mikrotik
- ↳ Готовые скрипты Mikrotik
- ↳ Обсуждение RouterOS
- MikroTik RouterBOARD
- ↳ Помощь в выборе оборудования
- ↳ Примеры решений на оборудовании Mikrotik
- MikroTik Dude
- Платные услуги
- ↳ Исполнители
- ↳ Задания
- Общие вопросы
- ↳ РАБОТА
- ↳ ВАКАНСИИ
- ↳ РЕЗЮМЕ
- ↳ НОВОСТИ
- ↳ ИНСТРУМЕНТЫ И ПРИБОРЫ
- ↳ КУРИЛКА
- Барахолка
- ↳ Куплю
- ↳ Продам
- ↳ Услуги
- КОРЗИНА
Как в Mikrotik посмотреть кто подключен
Каждый администратор должен обладать информацией что и куда у него подключено. Администрирование Mikrotik – не исключение. Рассмотрим типовые точки внимания, которые можно быстро проверить и собрать нужную информацию.
Кто подключен по Wi — Fi
Если Микротик у нас выполняет роль маршрутизатора по беспроводному каналу, то поиск подключенных устройств будет в разделе:
«Wireless» – » Registration»
В этом окне отображаются характеристики клиентов – их MAC -адрес, время подключения и скорость соединения.
ARP -кеш
При взаимодействии на L 2- L 3, наш коммутатор-маршрутизатор запоминает MAC -адреса фреймов и их привязку к IP -адресам, а также интерфейсы, со стороны которых эти фреймы приходят, что тоже может служить точкой внимания администратора. Найти это место легко:
Обращаем внимание на интерфейс, ведь зачастую кадры, приходящие на аплинк нам неинтересны (в случае на скрине – интерфейс провайдера).
DHCP
Если наш маршрутизатор выступает в роли сервера DHCP , можно посмотреть список узлов, арендовавших IP -адрес в разделе
«IP» – « DHCP Server» на вкладке » Leases» .
PPP
Если бы мы использовали PPP , то сведения об активных подключениях были бы в разделе » PPP» на вкладке « Active Connections«
Соседи-Микроты
А если сеть большая и наш Mikrotik не единственный? Есть инструмент полуактивной разведки, показывающий соседние устройства: » IP» – » Neighbor«
Кроме перечисленных способов есть ещё средства активной разведки, такие как «Torch» и «IP Scan«, находящиеся в разделе «Tools«, первое напоминает WireShark (сетевой сниффер), второе — NMap (сетевой сканер). Для решения определённых задач они вполне могут подойти.