Advertisement
deseven

MTiK api

Sep 3rd, 2012
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.05 KB | None | 0 0
  1. <?php
  2.  
  3. require('/srv/lb/mtik_api/mtikapi.class.php');
  4.  
  5. $API = new routeros_api();
  6.  
  7. $args=count($argv)-1;
  8.  
  9. $API->debug = false;
  10.  
  11. if ($API->connect('somehost', 'someusr', 'somepw')) {
  12.  
  13.     switch ($argv[1]) {
  14.         case "add":
  15.             $API->write('/ip/firewall/address-list/add',false);
  16.             for ($i = 2; $i <= $args; $i++) {
  17.                 //echo "=".$argv[$i]."\n";
  18.                 if ($i == $args) {
  19.                     $API->write("=".$argv[$i]);
  20.                 } else {
  21.                     $API->write("=".$argv[$i],false);
  22.                 }
  23.             }
  24.  
  25.             // getting some answers...
  26.             $API->read(false);
  27.  
  28.             break;
  29.         case "del":
  30.             $API->write('/ip/firewall/address-list/print',false);
  31.             for ($i = 2; $i <= $args; $i++) {
  32.                 //echo "=".$argv[$i]."\n";
  33.                 if ($i == $args) {
  34.                     $API->write("?".$argv[$i]);
  35.                 } else {
  36.                     $API->write("?".$argv[$i],false);
  37.                 }
  38.             }
  39.  
  40.             // getting some answers...
  41.             $READ = $API->read(false);
  42.             $ARRAY = $API->parse_response($READ);
  43.  
  44.             $secid="".$ARRAY[0][".id"];
  45.  
  46.             // removing selected address from list
  47.             if ($secid !== "") {
  48.                 $API->write("/ip/firewall/address-list/remove",false);
  49.                 $API->write("=.id=$secid");
  50.                 $API->read(false);             
  51.             }
  52.  
  53.             break;
  54.         case "disable":
  55.             $API->write('/ip/firewall/address-list/print',false);
  56.             for ($i = 2; $i <= $args; $i++) {
  57.                 //echo "=".$argv[$i]."\n";
  58.                 if ($i == $args) {
  59.                     $API->write("?".$argv[$i]);
  60.                 } else {
  61.                     $API->write("?".$argv[$i],false);
  62.                 }
  63.             }
  64.  
  65.             // getting some answers...
  66.             $READ = $API->read(false);
  67.             $ARRAY = $API->parse_response($READ);
  68.  
  69.             $secid="".$ARRAY[0][".id"];
  70.  
  71.             // disabling selected address from list
  72.             if ($secid !== "") {
  73.                 $API->write("/ip/firewall/address-list/set",false);
  74.                 $API->write("=.id=$secid",false);
  75.                 $API->write("=disabled=yes");
  76.                 $API->read(false);             
  77.             }
  78.  
  79.             break;
  80.         case "enable":
  81.             $API->write('/ip/firewall/address-list/print',false);
  82.             for ($i = 2; $i <= $args; $i++) {
  83.                 //echo "=".$argv[$i]."\n";
  84.                 if ($i == $args) {
  85.                     $API->write("?".$argv[$i]);
  86.                 } else {
  87.                     $API->write("?".$argv[$i],false);
  88.                 }
  89.             }
  90.  
  91.             // getting some answers...
  92.             $READ = $API->read(false);
  93.             $ARRAY = $API->parse_response($READ);
  94.  
  95.             $secid="".$ARRAY[0][".id"];
  96.  
  97.             // enabling selected address
  98.             if ($secid !== "") {
  99.                 $API->write("/ip/firewall/address-list/set",false);
  100.                 $API->write("=.id=$secid",false);
  101.                 $API->write("=disabled=no");
  102.                 $API->read(false);             
  103.             }
  104.  
  105.             break;
  106.         case "get":
  107.             $API->write('/ip/firewall/address-list/print');
  108.            
  109.             $READ = $API->read(false);
  110.             $ARRAY = $API->parse_response($READ);
  111.            
  112.             $disabled="";
  113.            
  114.             foreach ($ARRAY as $item) {
  115.                 if ($item["disabled"] == "false") {
  116.                     $disabled="no";
  117.                 } else {
  118.                     $disabled="yes";
  119.                 }
  120.                 if ((strpos($item["list"],"class_client") !== false) || (strpos($item["list"],"_unknown_class") !== false)) {
  121.                     print("\"address=".$item["address"]."\" \"comment=".$item["comment"]."\" \"disabled=".$disabled."\" \"list=".$item["list"]."\"");
  122.                     echo "\n";
  123.                 }
  124.             }
  125.             break;
  126.     }
  127.  
  128.     $API->disconnect();
  129. }
  130.  
  131. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement