Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Смените пароль на hotspot с помощью PHP API

    Смените пароль на hotspot с помощью PHP API

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Смените пароль на hotspot с помощью PHP API, RouterOS
     
    mudasir
    Guest
    #1
    0
    21.01.2010 19:19:00
    Привет, я работаю над простым PHP-скриптом для изменения пароля пользователя хотспота. Простой пример был бы очень кстати. В данный момент я делаю это с помощью BASH-скрипта на сервере Linux. Я почти всегда получаю ошибку STD Timeout при изменении пароля и не понимаю, почему это происходит. Если кто-то сможет объяснить мне, что такое ошибка STD Timeout, буду очень благодарен. Жду положительного ответа.
     
     
     
    desertadmin
    Guest
    #2
    0
    26.02.2010 21:15:00
    Можешь выложить свой PHP-код, который у тебя есть на данный момент? Как думаешь, будет ли проще сделать это на PERL? -С уважением, DesertAdmin
     
     
     
    desertadmin
    Guest
    #3
    0
    01.03.2010 09:25:00
    Мой код выглядит так, и он не меняет пароль, пожалуйста, помогите. Я могу подключиться и получить массив информации, но не могу установить/изменить пароль. Есть идеи? Я пытаюсь найти имя пользователя ilfeld и изменить его на следующий тестовый пароль yoyo. Имя пользователя, похоже, указано как id *5. Что я делаю не так? Это с использованием PHP API. $API->write('/ip/hotspot/user/getall'); $API->write('=.proplist=name'); $API->write('?name=ilfeld'); $API->write('/ip/hotspot/user/set'); $API->write('=.id=*5'); $API->write('=password=yoyo');

    $READ = $API->read(false); $ARRAY = $API->parse_response($READ); print_r($ARRAY); Заранее спасибо - С уважением, DesertAdmin
     
     
     
    dog
    Guest
    #4
    0
    01.03.2010 15:20:00
    Вы забыли завершить предложение. Вызовите $API->finish_sentence(); перед тем как пытаться что-то прочитать. …забудьте этот комментарий, у меня есть модифицированная версия API. С "официальным" API вам нужно было бы написать: $API->write('/ip/hotspot/user/getall',false); $API->write('=.proplist=name',false); $API->write('?name=ilfeld'); #в этот момент вам нужно что-то прочитать $API->write('/ip/hotspot/user/set',false); $API->write('=.id=*5',false); $API->write('=password=yoyo');
     
     
     
    desertadmin
    Guest
    #5
    0
    01.03.2010 19:25:00
    Круто, это сработало!! Вот как выглядит моя страница пароля для хотспота. У меня есть два файла, которые я создал, но я также использую routeros_api.class.php (конечно) на моем защищенном https-сервере. Файлы: hotspot.php hspot1.php routeros_api.class.php Вот код для моей базовой страницы входа для менеджеров отелей: https://server.address.com/hman/hotspot.php <html>
    <body>

    <form name="form1" method="post" action="hspot1.php">
    </form>

    <strong>Вход для администраторов HotSpot </strong>
    Имя пользователя:<input name="myusername" type="text" id="myusername">
    Пароль:<input name="mypassword" type="password" id="mypassword">
    Имя пользователя отеля:<strong>ilfeld</strong>
    Новый пароль:<input name="guestpassword" type="password" id="guestpassword">
      <input type="submit" name="Submit" value="Войти">
    <script language="JavaScript">
    <!--
    document.hotspot.myusername.focus();
    //-->

    </script>
    </body>
    </html> Мой код вызывает hspot1.php Пожалуйста, поменяйте IP-адрес сервера и используйте имя пользователя и пароль, которые могут только изменять имена пользователей и пароли для хотспота. Например, я создал пользователя для входа, который может писать только под именем менеджера с простым паролем для запоминания. Это позволит только этому имени пользователя менять пароли. Не забудьте включить порт API-сервиса и настроить его в соответствии с диапазоном ваших адресов. Или вы можете создать правило, которое позволит только вашим диапазонам IP-адресов. Как только это будет настроено, найдите имя пользователя, которое вы хотите менять постоянно, и получите его ID; если пользователь хотспота номер 4 в списке, вызывать его .id=*5, так как счёт начинается с 0. <?php

    require('routeros_api.class.php');

    $API = new routeros_api();

    $API->debug = false;
    $myusername = $_POST["myusername"];
    $mypassword = $_POST["mypassword"];
    $guestpassword = $_POST["guestpassword"];
    $cmmnd ="=password=";
    $cmmnd .=$guestpassword;
    $ipofsvr="111.111.111.111";

    if ($API->connect($ipofsvr, $myusername, $mypassword)) {

    echo "Пароль успешно изменен!";

    $API->write('/ip/hotspot/user/getall',false);
    $API->write('=.proplist=name',false);
    $API->write('?name=ilfeld');
    $API->write('/ip/hotspot/user/set',false);
    $API->write('=.id=*5',false);
    $API->write($cmmnd);

    $READ = $API->read(false);
    $ARRAY = $API->parse_response($READ);

    $API->disconnect();

    }
    else
    {
     echo "Неправильное имя пользователя или пароль! Попробуйте снова!";
     $API->disconnect();
    }
    ?> Если у вас есть вопросы или комментарии, пожалуйста, напишите их. Спасибо всем за помощь. -С уважением, DesertAdmin
     
     
     
    janisk
    Guest
    #6
    0
    17.05.2010 08:00:00
    Вы пытаетесь разместить эти страницы на маршрутизаторе? Если да, то это не сработает. Вам нужно разместить эти страницы на http-сервере, поддерживающем php, а маршрутизатор не является таковым.
     
     
     
    crusoe
    Guest
    #7
    0
    17.05.2010 11:18:00
    Спасибо за информацию, я осознал свою ошибку. Теперь я сохранил login.html и status.html на роутере, затем создал ссылку на status.html для смены пароля, которая ведет на changepass.html, а она уже перенаправляет пользователя на changepass.php и hspot1.php на внешнем сервере с работающим wampserver 2i. IP-адрес роутера — 172.16.1.1, пользователь admin и без пароля. Я вошел в систему с пользователем "admin", паролем "admin", и хочу изменить пароль на test. Когда я запускаю код hspot.php, получаю следующий вывод с включенной отладкой:

    Connection attempt #1 to 172.16.1.1:8728...
    <<< [6] /login
    >>> [5, 39] !done
    >>> [37, 1] =ret=42aa9f5618bbc947415e1a680ee3b2b7
    <<< [6] /login
    <<< [11] =name=admin
    <<< [44] =response=00b9325a654b8954ac191945f299c4c093
    >>> [5, 1] !done
    Connected...
    <<< [23] /ip/hotspot/user/getall
    <<< [21] /ip/hotspot/user/set/
    <<< [10] =.id=admin
    <<< [14] =password=test
    >>> [3, 189] !re
    >>> [7, 181] =.id=*1
    <<< [11, 169] =name=admin
    <<< [15, 153] =password=admin
    <<< [16, 136] =profile=default
    <<< [16, 119] =uptime=1h30m12s
    <<< [18, 100] =bytes-in=21293900
    <<< [19, 80] =bytes-out=22015929
    <<< [17, 62] =packets-in=26375
    <<< [18, 43] =packets-out=21254
    <<< [11, 31] =dynamic=no
    <<< [9, 21] =comment=
    <<< [12, 8] =disabled=no
    >>> [5, 1] !done
    Disconnected...

    Пароль успешно изменен! Но на самом деле пароль не изменился. У меня включен API с разрешенным диапазоном адресов 172.16.1.0/24. Код для changepass.php:

    <?php
    $username = $_POST['user'];
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

    <body>

    <form name="form1" method="post" action="hspot1.php">
    </form>

    <strong>Смена пароля пользователя HotSpot</strong>
    Имя пользователя:<?php echo $username; ?><input name="myusername" type="hidden" id="myusername" value="<?php echo $username; ?>">
    Старый пароль:<input name="mypassword" type="password" id="mypassword" >
      
    Новый пароль:<input name="newpassword" type="password" id="newpassword">
      <input type="submit" name="Submit" value="отправить">
    <script language="JavaScript">
    <!--
    document.hotspot.myusername.focus();
    //-->
    </script>
    </body>
    </html>

    Теперь я в тупике, не знаю, что делать.
     
     
     
    desertadmin
    Guest
    #8
    0
    17.05.2010 16:55:00
    Что ж, API предназначен для изменения имени пользователя в месте ".id=*1", я так полагаю. Так что вам, возможно, нужно изменить значение .id на соответствующее имя пользователя. Вам может понадобиться найти правильную позицию id и добавить 1 (я могу ошибаться). Думаю, это и есть вся проблема. Конечно, кажется, что вы используете маршрутизатор с кодом хотспота. -С уважением, DesertAdmin
     
     
     
    crusoe
    Guest
    #9
    0
    17.05.2010 21:36:00
    ок. я изменил строку $API->write('=.id='.$myusername,false); на $API->write('=.id=*1,false); потому что из вывода я вижу, что .id имеет значение *1. Поведение осталось тем же, как будто пароль был изменен, но при входе в роутер видно другое. В данный момент я использую v3.13 routeros, но подозревал, что может быть ошибка, поэтому обновил до 3.22, и когда запускаю тот же код, получаю Connection attempt #1 to 172.16.1.1:8728... <<< [6] /login >>> [5, 39] !done >>> [37, 1] =ret=3c459371715010e0476c6d91d2995876 <<< [6] /login <<< [11] =name=admin <<< [44] =response=00393c8c29e1e089dbbf83a720fc58bcc8 >>> [5, 1] !done Connected... <<< [23] /ip/hotspot/user/getall <<< [21] /ip/hotspot/user/set/ <<< [10] =.id=admin <<< [14] =password=test >>> [5, 35] !trap >>> [26, 8] =message=unknown parameter >>> [5, 1] !done Disconnected... Password Changed successfully! о каком неизвестном параметре идет речь? как мне это идентифицировать, я так запутался, но я никогда не сдаюсь. вернусь к вашему предложению по поиску, вот код <?php

    require('routeros_api.class.php');

    $API = new routeros_api();

    $API->debug = true;
    $myusername = $_POST["myusername"];
    $mypassword = $_POST["mypassword"];
    $newpassword= $_POST["newpassword"];
    $ipofsvr="172.16.1.1";

    if ($API->connect($ipofsvr,'admin',"")) {

      $API->write('/ip/hotspot/user/getall');
      $API->write('=.proplist=.id',false);
      $API->write('?name='.$myusername);
     
      $A = $API->read();
      $A = $A[0];
     
      echo "list  .id value" .$A;
     
      $READ = $API->read(false);
      $ARRAY = $API->parse_response($READ);
     
      $API->write('/ip/hotspot/user/set/',false);
      $API->write('=.id='.$A['.id'],false);
      $API->write('=password='.$newpassword);
      $API->read();

      $API->disconnect();
     
      echo "Password Changed successfully!";
    }
    else
    {
     echo "Incorrect Username or Password! Please try again!";
     $API->disconnect();
    }
    ?> когда я запускаю, получаю этот вывод Connection attempt #1 to 172.16.1.1:8728... <<< [6] /login >>> [5, 39] !done >>> [37, 1] =ret=c8e0d23ebe4ba26d3143df7ad2ba87a4 <<< [6] /login <<< [11] =name=admin <<< [44] =response=00e6d723bf535a6070e54f046d0acd1f26 >>> [5, 1] !done Connected... <<< [23] /ip/hotspot/user/getall <<< [14] =.proplist=.id <<< [11] ?name=admin >>> [5, 223] !trap >>> [31, 191] =message=no such command prefix >>> [5, 184] !done >>> [3, 179] !re >>> [7, 171] =.id=*1 >>> [9, 161] =comment= >>> [11, 149] =name=admin >>> [15, 133] =password=admin >>> [16, 116] =profile=default >>> [16, 99] =uptime=06:34:31 >>> [18, 80] =bytes-in=67384966 >>> [19, 60] =bytes-out=22911619 >>> [17, 42] =packets-in=63280 >>> [18, 23] =packets-out=29152 >>> [14, 8] =dynamic=false >>> [5, 1] !done list .id valueArray Notice: Undefined variable: _ in C:\wamp\www\hotspot\routeros_api.class.php on line 217

    Notice: Undefined variable: _ in C:\wamp\www\hotspot\routeros_api.class.php on line 217

    Notice: Undefined variable: _ in C:\wamp\www\hotspot\routeros_api.class.php on line 217

    Notice: Undefined variable: _ in C:\wamp\www\hotspot\routeros_api.class.php on line 217 ребята, мне нужна помощь с этими кодами, как я уже говорил, это мой первый раз с php и api. это строка 217 файла routeros_api.class.php, если ((!$this->connected && !$STATUS['unread_bytes']) || ($this->connected && $_ == '!done' && !$STATUS['unread_bytes'])) имеет ли кто-нибудь обновленную версию routeros_api.class.php? как ни крути, теперь я получаю ошибку в строке выше и в других местах.
     
     
     
    janisk
    Guest
    #10
    0
    18.05.2010 04:39:00
    попробуйте: /ip/hotspot/user/set вместо: /ip/hotspot/user/set**/** помните, что предложение API состоит из команды и аргументов: /this/is/the/command =these=arguments
     
     
     
    crusoe
    Guest
    #11
    0
    18.05.2010 08:32:00
    вывод остается неизменным после использования /ip/hotspot/user/set не работает
     
     
     
    desertadmin
    Guest
    #12
    0
    18.05.2010 15:30:00
    .n id номер — это пользователь в его последовательном порядке, указанном в области имени пользователя хотспота. Например, у меня есть следующее под моим: [username@Plazahotelilfeld] /ip hotspot user> pri Flags: X - отключен, D - динамический SERVER NAME ADDRESS PROFILE UPTIME 0 ilfeld guest 1w2d2h20m40s 1 admin default 22m15s 2 staff iphone 3m28s Это означает, что место +1 соответствует ‘=.id=*1’ для имени пользователя ilfeld и ‘=.id=*2’ для имени пользователя admin и так далее. У тебя есть routeros_api.class.php в той же папке на удаленном сервере? Если нет, тебе нужно получить его с http://wiki.mikrotik.com/wiki/API_PHP_class Сообщи, если это помогло. -С уважением, DesertAdmin
     
     
     
    janisk
    Guest
    #13
    0
    19.05.2010 04:34:00
    не делайте предположений. Вот простой пример: [admin@test-B] /ip hotspot user> add name=one [admin@test-B] /ip hotspot user> add name=two [admin@test-B] /ip hotspot user> add name=three [admin@test-B] /ip hotspot user> print Flags: X - отключен, D - динамический # SERVER NAME ADDRESS PROFILE UPTIME 0 one default 0s 1 two default 0s 2 three default 0s [admin@test-B] /ip hotspot user> :put [find] *1;*2;*3 [admin@test-B] /ip hotspot user> add name=four [admin@test-B] /ip hotspot user> remove [find where name="two"] [admin@test-B] /ip hotspot user> add name=two [admin@test-B] /ip hotspot user> :put [find] *1;*3;*4;*5 посмотрите на эти поля .ID и их значения. Значения .ID для элемента не меняются со временем.
     
     
     
    desertadmin
    Guest
    #14
    0
    02.03.2010 01:25:00
    Вот мое новое изменение на странице для наших управляющих отелями, чтобы они могли изменить пароль своих основных учетных записей гостей для их точки доступа. Все остальные клиенты, которые нуждаются в скорости выше 128к, будут покупать у нас трафик. Я это хорошо защитил на нашем https сайте, который доступен только в наших сетях. Дайте знать, что вы думаете! Спасибо - с уважением, DesertAdmin
     
     
     
    crusoe
    Guest
    #15
    0
    16.05.2010 07:27:00
    Привет всем! Я пытаюсь создать систему, аналогичную той, что обсуждается на этой странице. Используя информацию с этой страницы, я хотел бы, чтобы пользователи хотспота изменяли свои пароли после входа. Файлы login.html и status.html находятся в стандартной папке хотспота mikrotik. Последовательность: login.html (обычная страница входа) >>>> status.html (генерируется после успешного входа) >>>> changepass.php (переход по ссылке на status.html) >>>> hspot1.php. Но у меня возникли трудности после вызова hspot1.php, я вижу только код на веб-странице и всё. Пароль не меняется!!! Мне нужна помощь. Неправильное понимание: у меня нет опыта в php, html, java... это мой первый раз... я дошел до этого момента благодаря этому форуму и гуглу. Вот код страницы статуса:

    <html>
    <head>
    <title> hotspot > статус</title>
    <style>
    <!--
    .style1 {
    color: #660000;
    font-weight: bold;
    }
    -->
    </style>
    $(if refresh-timeout)
    <meta http-equiv="refresh" content="$(refresh-timeout-secs)">
    $(endif)
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="expires" content="-1">
    <style>
    <!--
    textarea,input,select {
    background-color: #FDFBFB;
    border: 1px #BBBBBB solid;
    padding: 2px;
    margin: 1px;
    font-size: 14px;
    color: #808080;
    }

    .tabula{

    border-width: 1px;
    border-collapse: collapse;
    border-color: #c1c1c1;
    background-color: transparent;
    font-family: verdana;
    font-size: 11px;
    }

    body{ color: #737373; font-size: 12px; font-family: verdana; }

    a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
    a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
    img {border: none;}
    td { font-size: 12px; padding: 4px;}
    .style2 {color: #660000}

    -->
    </style>
    <script language="JavaScript">
    <!--
    $(if advert-pending == 'yes')
       var popup = '';
       function focusAdvert() {
    if (window.focus) popup.focus();
       }
       function openAdvert() {
    popup = open('$(link-advert)', 'hotspot_advert', '');
    setTimeout("focusAdvert()", 1000);
       }
    $(endif)
       function openLogout() {
    if (window.name != 'hotspot_status') return true;
           open('$(link-logout)', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
    window.close();
    return false;
       }
    //-->
    </script>
    </head>
    <body bottommargin="0" topmargin="0" leftmargin="0" rightmargin="0"
    $(if advert-pending == 'yes')
    onLoad="openAdvert()"
    $(endif)
    >

    <form action="$(link-logout)" name="logout" onSubmit="return openLogout()">

    $(if login-by == 'trial')
    <br><div style="text-align: center;">Добро пожаловать, пробный пользователь!</div><br>
    $(elif login-by != 'mac')
    <br><div style="text-align: center;">Добро пожаловать, $(username)!</div><br>
    $(endif)
    $(if session-time-left)
    $(else)
    $(endif)
    $(if blocked == 'yes')
    $(elif refresh-timeout)
    $(endif)
    IP адрес:$(ip)
    байты вверх/вниз:$(bytes-in-nice) / $(bytes-out-nice)
    подключено / осталось:$(uptime) / $(session-time-left)
    подключено:$(uptime)
    статус:<div style="color: #FF8080">
    требуется реклама</div>
    обновление статуса:$(refresh-timeout)
    $(if login-by-mac != 'yes')
    <br>
    <!-- ссылка на менеджер пользователей
    <button onclick="document.location='http://$(hostname)/user?subs='">статус</button>
    <!-- конец ссылки на менеджер пользователей -->
    <input type="submit" value="выход">
    <label>
    /</label>

    $(endif)

    <p class="style1">ИЗМЕНИТЬ ПАРОЛЬ</p>
    </form>

    </body>
    </html> код для changepass.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Безымянный документ</title>
    </head>

    <body>

    <form name="form1" method="post" action="hspot1.php">
    </form>

    <strong>Смена пароля пользователя HotSpot</strong>
    Имя пользователя:<input name="myusername" type="text" id="myusername">
    Старый пароль:<input name="mypassword" type="password" id="mypassword">
      

    Новый пароль:<input name="newpassword" type="password" id="newpassword">
      <input type="submit" name="Submit" value="отправить">
    <script language="JavaScript">
    <!--
    document.hotspot.myusername.focus();
    //-->

    </script>
    </body>
    </html> затем код для hotspot1.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Безымянный документ</title>
    </head>


    <?php

    require('routeros_api.class.php');

    $API = new routeros_api();

    $API->debug = false;
    $myusername = $_POST["myusername"];
    $mypassword = $_POST["mypassword"];
    $newpassword= $_POST["newpassword"]
    $cmmnd ="=password=";
    $cmmnd .=$newpassword;
    $ipofsvr="172.16.1.1";

    if ($API->connect($ipofsvr, $myusername, $mypassword)) {

      echo "Пароль успешно изменён!";

      $API->write('/ip/hotspot/user/getall', false);
      $API->write('=.proplist=name', false);
      $API->write('?name=$myusername');
      $API->write('/ip/hotspot/user/set', false);
      $API->write('=name=$myusername', false);
      $API->write($cmmnd);

      $READ = $API->read(false);
      $ARRAY = $API->parse_response($READ);
     
      $API->disconnect();

    }
    else
    {
     echo "Неправильное имя пользователя или пароль! Пожалуйста, попробуйте снова!";
     $API->disconnect();
    }
    ?>


    <body>
    </body>
    </html>
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры