0

I am trying to connect to MikroTik RouterOS through External Remote IP but I am not able to connect as I can see that I can successfully connect to API through Localhost but can't connect through my hosted file at my site..!

Here is link to file : http://huntedhunter.com/router-api/examples/example1.php

Besides strange thing is that 8728 port is open on my IP and still it's not connecting...!

I am using this API to connect : 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>
Umair Shah
  • 2,305
  • 2
  • 25
  • 50

1 Answers1

0

First check if api service is enabled in 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 flag near service name - the service is desabled

Second check your firewall filter table. Chain "input"

You need allow input access to api service port. Api service port you can check at first point in this answer

Anton Globa
  • 133
  • 6