IP и порт открыты, но PHP не подключается?

Я пытаюсь подключиться к MikroTik RouterOS через внешний удаленный IP-адрес, но не могу подключиться, так как вижу, что могу успешно подключиться к API через Localhost, но не могу подключиться через файл, размещенный на моем сайте..!

Вот ссылка на файл: http://huntedhunter.com/router-api/examples/example1.php

Кроме того, странно то, что порт 8728 открыт на моем IP, и все равно не подключается ...!

Я использую этот API для подключения: https://github.com/BenMenking/routeros-api

<pre>
<?php

require('../routeros_api.class.php');

$API = new RouterosAPI();

$API->debug = true;

if ($API->connect('39.33.4.164', 'test', 'test')) {


$ARRAY = $API->comm("/system/resource/print");


   $first = $ARRAY['0'];
$memperc = ($first['free-memory']/$first['total-memory']);
$hddperc = ($first['free-hdd-space']/$first['total-hdd-space']);
$mem = ($memperc*100);
$hdd = ($hddperc*100);
echo "Mikrotik RouterOs 4.16 Resources";
echo "<br />";
echo "<table width=550 border=0 align=center>";

echo "<tr><td>Platform, board name and Ros version is:</td><td>" . $first['platform'] . " - " . $first['board-name'] . " - "  . $first['version'] . " - " . $first['architecture-name'] . "</td></tr><br />";
echo "<tr><td>Cpu and available cores:</td><td>" . $first['cpu'] . " at " . $first['cpu-frequency'] . " Mhz with " . $first['cpu-count'] . " core(s) "  . "</td></tr><br />";
echo "<tr><td>Uptime is:</td><td>" . $first['uptime'] . " (hh/mm/ss)" . "</td></tr><br />";
echo "<tr><td>Cpu Load is:</td><td>" . $first['cpu-load'] . " %" . "</td></tr><br />";
echo "<tr><td>Total,free memory and memory % is:</td><td>" . $first['total-memory'] . "Kb - " . $first['free-memory'] . "Kb - " . number_format($mem,3) . "% </td></tr><br />";
echo "<tr><td>Total,free disk and disk % is:</td><td>" . $first['total-hdd-space'] . "Kb - " . $first['free-hdd-space'] . "Kb - " . number_format($hdd,3) . "% </td></tr><br />";
echo "<tr><td>Sectors (write,since reboot,bad blocks):</td><td>" . $first['write-sect-total'] . " - " . $first['write-sect-since-reboot'] . " - " . $first['bad-blocks'] . "% </td></tr><br />";

echo "</table>";

echo "<br />";
echo "<br />";
echo "<br />";
echo "<br />Debug:";
echo "<br />";
   $API->disconnect();

}

?>
</pre>

person Umair Shah Yousafzai    schedule 01.01.2016    source источник
comment
Разместите здесь свой код. Когда мы переходим по вашей ссылке, он запускает скрипт, мы не можем видеть код.   -  person Barmar    schedule 02.01.2016
comment
Вы открыли port 8728 или port forward port 8728 Вы должны port forward it   -  person RiggsFolly    schedule 02.01.2016
comment
@RiggsFolly Да ... я уже перенаправил порт ..! и сообщить вам, что на моем хостинге заблокирован порт 8728, так что это будет из-за этой причины или что?   -  person Umair Shah Yousafzai    schedule 03.01.2016
comment
Если порт заблокирован, то да, конечно, это будет проблемой.   -  person RiggsFolly    schedule 03.01.2016


Ответы (1)


Сначала проверьте, включена ли служба API в routeros.

[admin@mikrotik] > /ip service print
Flags: X - disabled, I - invalid 
 #   NAME      PORT ADDRESS                                        CERTIFICATE   
 0 XI telnet      23
 1 XI ftp         21
 2 XI www       8989
 3   ssh       22
 4 XI www-ssl    443                                                none          
 5 XI api       8728
 6   winbox    8291
 7 XI api-ssl   8729                                                none  

Флаг XI рядом с названием службы - служба отключена

Во-вторых, проверьте таблицу фильтров брандмауэра. Цепочка «вход»

Вам необходимо разрешить входной доступ к сервисному порту API. Порт службы API, который вы можете проверить в первом пункте этого ответа

person Anton Globa    schedule 17.05.2019