那不如把資訊都放到資料庫中
這樣也比較方便
所以才用php寫了這一個測試
基本上也是使用radtest進行
header("Content-Type:text/html; charset=utf-8");
$link = mysql_pconnect("資料庫", "'帳號", "密碼") or die("無法與MySQL建立連線");
mysql_select_db("radius") or die("無法選擇std資料庫");
$fp=fopen( '/radtest/temp.log',"w");
function radtest($un, $pw, $hn, $po, $sr){ #進行radtest function
return exec('radtest '.trim($un).' ''.trim($pw).'' '.trim($hn).':'.trim($po).' 0 '.trim($sr).'|grep Accept|grep -c Accept');
}
mysql_query('SET NAMES utf8',$link);
mysql_query('SET CHARACTER_SET_CLIENT=utf8',$link);
mysql_query('SET CHARACTER_SET_RESULTS=utf8',$link);
$myquery = "select nasname, port, secret, schoolname, testaccounting, testpasswd from 資料表";
$result = mysql_query($myquery) or die("查詢 Query 錯誤");
fwrite($fp, "下列單位進行radtest時發生錯誤!!n");
$count=0;
while($row = mysql_fetch_array($result))
{
if(($row["testaccounting"]<>"預設帳號") and ($row["testaccounting"]<>"預設帳號")) # Have Testing username password
{
if( radtest($row["testaccounting"], $row["testpasswd"], '10.1.0.7', '1812', $row["secret"]) =='1')
{
########### Test Ok ##########
}
else
{
########## Test Fault #########
if( radtest( '預設帳號', '預設密碼', $row["nasname"], $row["port"], $row["secret"]) =='1')
{
}
else
{
#echo $row["schoolname"].' '.$row["nasname"]."失敗 (1,3)n";
fwrite($fp, date('Y-m-d G:i:s').' : '.$row["schoolname"].' '.$row["nasname"]."失敗n");
$count++;
}
}
}
else
{
if( radtest($row["testaccounting"], $row["testpasswd"], $row["nasname"], $row["port"], $row["secret"]) =='1')
{
########### Test Ok ##########
}
else
{
########## Test Fault #########
fwrite($fp, date('Y-m-d G:i:s').' : '.$row["schoolname"].' '.$row["nasname"]."失敗n");
$count++;
}
}
}
fwrite($fp, "共有".$count."間單位發生錯誤!!n");
fclose($fp);
exec('/bin/mail -s "radius error "'.$count.'" ('.date('Y-m-d G').':00) !!" cowman.niu@gmail.com < "/radtest/temp.log"');
if($count>20)
{
//跟廠商連線, 並送出簡訊
$login_wsdl = "http://tw.every8d.com/API20/Security.asmx?wsdl";
$sms_wsdl = "http://tw.every8d.com/API20/Message.asmx?wsdl";
$custID ="帳號"; //請勿更改
$userID="帳號"; //您的EVERY8D帳號
$password="密碼"; //您的EVERY8D密碼
$client = new SoapClient($login_wsdl);
// login
$params = array("custID"=>$custID,"userID"=>$userID,"password"=>$password,"APIType"=>"","version"=>"");
$objResult =$client->Login($params);
$xmlstr= $objResult->LoginResult;
$xml = new SimpleXMLElement($xmlstr);
if($xml->ERROR_CODE =="0000"){
//echo "Login successfully
";
//echo "正確與服務供應商取得連線
";
}else{
echo "與服務供應商連線錯誤
";
echo '返回';
exit;
}
// send sms
$UserNo = $xml->USER_NO; //從登入結果取得UserNo
$CompanyNo = $xml->COMPANY_NO; //從登入結果取得Company_No
$Credit = $xml->CREDIT; //從登入結果取得目前剩餘額度
$subject = "漫遊測試錯誤嚴重"; //發送主旨
$content = "請盡速檢查漫遊設定"; //發送內容
$mobile = "手機號碼"; //發送號碼
$email = "信箱"; //發送email位置
$sendTime= ""; //發送時間
$sms_xml = ''; ';
$sms_xml .= '';
$sms_xml .= '';
$sms_xml .= '';
$sms_xml .= '
//Display Information
echo '傳送對象: '. $mobile. '
';
echo '訊息內容: '. $content. '
';
echo '發送人: COWMAN
';
//建立要傳送簡訊的陣列
$params_sms = array("custID"=>$custID,
"CompanyNo"=>$CompanyNo,
"userNo"=>$UserNo,
"sendtype"=>"110",
"msgCategory"=>"10",
"subject"=>$subject,
"content"=>$content,
"image"=>"",
"Audio"=>"",
"xml"=>$sms_xml,
"batchID"=>"",
"certified"=>"");
//檢查餘額, 小於100暫時停止發送
if($Credit<$Min_Credit){
echo "餘額不足, 暫時停止發送簡訊";
echo '返回';
exit;
}
//建構SOAP訊息
$sms_Service = new SoapClient($sms_wsdl);
//送出簡訊, 並取得結果
$sendResult = $sms_Service->QueueIn($params_sms);
//從結果的結構擷取結果字串
$sendResultStr = $sendResult->QueueInResult;
if( substr($sendResultStr,0,1) =="-")
echo "訊息發送失敗
"; //表示訊息已經送出
else
echo "訊息傳送成功
";//表示訊息已經送出
}
0 意見:
張貼留言