File: //var/www/net/api.php
<?php
include "routeros_api.php";
include "name.php";
$mikrotik_ip = $_GET['vpn'].'.sn.mynetname.net';//宣告變數mikrotik_ip,並已$_GET接收主頁傳來的已vpn為代號的主機資料
#$mikrotik_ip = 'b8d00a83a70b.sn.mynetname.net';
$API = new RouterosAPI();//宣告變數API為登入主機的函數
if ($API->connect($mikrotik_ip, $mikrotik_username,$mikrotik_password)) {
$idname = $API->comm("/system/identity/print");//連線成功,列出system中identity的資訊,主要取得社區編號並存放在陣列idname
$chname = $API->comm("/system/note/print");//連線成功,列出system中note的資訊,主要取得社區的HEX碼並存放在陣列chname
$startime = $API->comm("/system/resource/print");//連線成功,列出system中resource的資訊,主要取得主機運行時間並存放在陣列startime
$secret = $API->comm("/ppp/secret/print");//連線成功,列出PPPOE使用者數量並存放在陣列secret
$active = $API->comm("/ppp/active/print");//連線成功,列出PPPOE上線用戶數量並存放在陣列active
$oldday = $startime['0']['uptime'];//宣告變數oldday,取得陣列中的uptime數值
preg_match_all('!\d+!',$oldday,$newday);//透過preg_match_all函式,將oldday的uptime數值,已不同單位儲存為陣列保存在變數newday
$newdate = "上線時間:".getDay($oldday,$newday);//宣告變數newdate為主機運作時常的天數,透過函式getDay將'w''d''h''m''s'轉變為'天'數
$test = $API->comm("/interface/pppoe-client/monitor
=.id=FTTH1
=once
");//連線成功,透過執行一次monitor指令,列出FTTH1的使用狀態存取為陣列test
$oldtime = $test['0']['uptime'];//宣告變數oldtime,取得陣列中uptime的數值
preg_match_all('!\d+!',$oldtime,$newtime);//透過preg_match_all函式,將oldtime的uptime數值,已不同單位儲存為陣列保存在變數newtime
$newtimes = "外線運行:".getTime($oldtime,$newtime);//宣告變數newtimes為FTTH1連線時長,透過函式getDay將'w''d''h''m''s'轉變為'天'':'':'
echo $idname['0']['name'].rawurldecode($chname['0']['note'])."<br>"."上線:".count($active)."戶&總數:".count($secret)."戶<br>".$newdate."<br>".$newtimes;
//透過echo 顯示出idname陣列中的name,利用rawurldecode將hex數值轉變為中文顯示,利用函式count計算陣列active(上線用戶)及secret(總用戶)的總數並顯示出來,顯示newdate(主機運行天數),顯示newtimes(外線連線時長)
}else{
echo "社區主機斷線中,請盡快搶修";
}
$API->disconnect();
?>