function mtPublicIP($host) { // Instanciate MT API call $API = new routeros_api(); $API->debug = false; // Set a default value to return if connection to MT fails $ipaddr = "0.0.0.0"; // Query Mikrotik if ($API->connect($host, 'admin', 'DataCom')) { $API->write('/ip/dhcp-client/print'); $ARRAY = $API->read(); $API->disconnect(); $ipaddr = substr($ARRAY['0']['address'], 0, -3); if ($ipaddr == "") { $API->connect($host, 'admin', 'DataCom'); $API->write('/ip/address/print'); $ARRAY = $API->read(); $API->disconnect(); foreach ($ARRAY as $addr) { if ($addr['interface'] == "ether1") { $ipaddr = substr($addr['address'], 0, -3); } } } } return $ipaddr; }
// Email Alerts Function function email_alert($message, $subject) { system("echo '{$message}' | mail -s '{$subject}' trouble@getdatacom.com -- -f alerts@mydatacomgts.com"); } // Read old states from file $oldstate = parse_ini_file("/root/oldstatefile.txt"); // Get current states from Mikrotik require '/usr/local/gts/routeros_api.class.php'; $API = new routeros_api(); $API->debug = false; // Query Mikrotik if ($API->connect('69.1.163.102', 'admin', 'd@t@c0m#')) { $API->write('/ppp/active/print'); $ARRAY = $API->read(); $API->disconnect(); foreach ($ARRAY as $item) { $currentstate[$item['name']] = $item['caller-id']; } $savefile = ""; foreach ($currentstate as $name => $ip) { $savefile .= $name . "=" . $ip . "\n"; } file_put_contents("/root/oldstatefile.txt", $savefile); } // Compare old to new arrays $newchange = array_diff_assoc($currentstate, $oldstate); $oldchange = array_diff_assoc($oldstate, $currentstate); // Figure out changed IPs and Tunnel Ups $tunnelchange = "";
$portsAccessCR = ""; for ($cont3 = 0; $cont3 < count($estadoAccessCR); $cont3++) { $allPortsAccessCR = $estadoAccessCR[$cont3]['new-customer-vid'] . "," . $allPortsAccessCR; } //DELETE LAST COMMA if ($allPortsAccessCR[strlen($allPorts) - 1] == ",") { $allPortsAccessCR = rtrim($allPorts, ','); } //LEAVE UNIQUE VALUES WITHOUT REPEATING $allPortsAccessCR = implode(',', array_unique(explode(',', $allPortsAccessCR))); //DO ARRAY WITH EACH VALUE $allPortsAccessCR = explode(',', $allPortsAccessCR); $API->write("/interface/ethernet/monitor", false); $API->write("=numbers=" . $valores, false); $API->write("=once=", true); $READ = $API->read(false); $statusPorts = $API->parse_response($READ); //Array Colores, $colores = ["#00fff9", "#ff00e7", "#a3ff00", "#ffdc0b", "#ff4400", "#7c00ff", "#3377ff", "#ff7468", "#20e523", "#fcc512", "#9f0d0d", "#bc9ad4", "#79addd", "#e7d1e5", "#7bcf5a", "#cc8324", "#b80f12", "#0da9b0", "#eea7b9", "#1e7352", "#eee117", "#b80000", "#00137a", "#AA0078", "#3333FF", "#99FF00", "#FFCC00", "#CC0000", "#587498", "#E86850", "#FFD800", "##00FF00", "#FF0000", "#0000FF", "#FF6600", "#A16B23", "#C9341C", "#ECC5A8", "#A3CBF1", "#79BFA1", "#FB7374", "#FF9900", "#4FD5D6", "#D6E3B5", "#FFD197", "#FFFF66", "#FFC3CE", "#21B6A8", "#CDFFFF", ""]; $API->disconnect(); } //Sacar valores String TRUNK CR for ($cont = 0; $cont < count($estadoTrunkCR); $cont++) { //Concatenamos todos los puertos de trunk $puertosTrunk = $estadoTrunkCR[$cont]['tagged-ports'] . "," . $puertosTrunk; } //Eliminamos la ultima coma $rest = substr($puertosTrunk, 0, -1); //Separamos cada puerto en una string delimitando la coma $tags = explode(',', $rest); //Elegimos el primer puerto y eliminamos a los repetidos
$Ports = $API->read(); $API->disconnect(); } } } for ($cont = 0; $cont < $numPorts; $cont++) { if (isset($_POST['disablePort' . $cont])) { $API = new routeros_api(); $IP = $_SESSION['ip']; $user = $_SESSION['user']; $password = $_SESSION['password']; if ($API->connect($IP, $user, $password)) { $API->write("/interface/ethernet/set", false); $API->write("=disabled=yes", false); $API->write("=.id=" . $Ports[$cont]['name']); $Ports = $API->read(); $API->disconnect(); } } } ?> <!--Boton cerrar sesiĆ³n--> <?php if ($_GET['logOut'] == 'yes') { session_destroy(); header('Location:index.php'); } ?> <script src="jquery/jquery.min.js"></script> <script src="jquery/jquery-ui.min.js"></script>
if (!empty($nd_list['port'])) { $hostek .= ':' . $nd_list[$i]['port']; } $result = $LMS->WIFI_GetAllSignal($hostek, $nd_list[$i]['login']); if ($result) { $data = $result; } else { $data = array(); } } if ($nastype === 14) { $MT->debug = false; $MT->port = $nd_list[$i]['port']; if ($connect = $MT->connect($nd_list[$i]['ipaddr'], $nd_list[$i]['login'], $nd_list[$i]['passwd'])) { $MT->write('/interface/wireless/registration-table/print'); $result = $MT->read(); $MT->disconnect(); if ($result) { for ($k = 0; $k < sizeof($result); $k++) { if (isset($result[$k]['signal-strength']) && !empty($result[$k]['signal-strength'])) { $tab[$k]['rx_signal'] = substr($result[$k]['signal-strength'], 0, strpos($result[$k]['signal-strength'], "dBm")); } else { $tab[$k]['rx_signal'] = 0; } if (isset($result[$k]['tx-signal-strength']) && !empty($result[$k]['tx-signal-strength'])) { $tab[$k]['tx_signal'] = $result[$k]['tx-signal-strength']; } else { $tab[$k]['tx_signal'] = 0; } if (isset($result[$k]['rx-rate']) && !empty($result[$k]['rx-rate'])) { $tab[$k]['rx_rate'] = str_replace('Mbps', '', $result[$k]['rx-rate']);
$host = "172.17.10.60"; // Convert results to integer MS function convertms($resulttime) { $result1 = explode(":", $resulttime); $result2 = explode(".", $result1[2]); $msval = $result1[0] * 60 * 60 * 1000 + $result1[1] * 60 * 1000 + $result2[0] * 1000 + $result2[1]; return $msval; } // Instanciate MT API call $API = new routeros_api(); $API->debug = false; // Query Mikrotik if ($API->connect($host, 'admin', 'DataCom')) { $API->write('/interface/sstp-client/print'); $TARGET = $API->read(); $tunuser = $TARGET[0]['user']; $pingtargarr = explode(':', $TARGET[0]['connect-to']); $pingtarg = $pingtargarr[0]; echo "Ping Target: " . $pingtarg . "\n"; $API->write('/ping', false); $API->write('=address=' . $pingtarg, false); $API->write('=count=10'); $ARRAY = $API->read(); $API->disconnect(); } // Query Tunnel End point for real public ip if ($API->connect($pingtarg, 'admin', 'D@t@c0m#')) { $API->write('/ppp/active/print'); $TUNNELS = $API->read(); $pubip = '0.0.0.0';