单位里一帮电脑小白,在使用电脑(全部在局域网内)过程中老出现这问题那问题,维护电脑时经常需要跑来跑去,于是想到偷懒使用远程桌面来做,统一将超级管理员用户收回,他们只使用普通管理员或标准用户权限。但在使用过程中又出现了几个问题:一是每次要得到他们的IP地址,有人连这个也不会看;二是不能确定网络是否链接上,需要使用一次ping命令。于是想到自己开发一个监测网络通断性的小程序,从而做到一目了然。为了方便在任何电脑上随时看,决定使用PHP来写,然后把程序放在我的电脑www目录内。
————————————————知识分割线————————————————
这里需要一点使用PHP调用系统命令的知识:
php的内置函数exec、system都可以调用系统命令(dos和shell命令),passthru和escapeshellcmd也可以。
使用这两个函数就需要在php.ini中将安全模式关闭,否则为了安全期间,php是不让调用系统命令的。
exec --- 执行外部程序
语法:string exec (string command [,array &output [,int &return_var]])
参数:1.command:系统命令;
2.output:数组,被命令输出的每一行填满;
3.return_var:状态,成功返回0,失败返回1.
system --- 执行外部程序并且显示输出
语法:string system (string command [,int &return_var])
不同点:
exec可以把执行的结果全部返回到$output数组里,$return_var是执行状态,0为成功,1为失败;
system不需要提供$output函数,它可以直接把结果返回来并且打印出来,同意$return_var是执行的状态码,0为成功,1为失败。
————————————————知识分割线————————————————
下面是代码:(DCTYPE这里就不写了)
<head>
<title>监测网络通断性<tittle>
<style>
.box{
height:100px;
width:100px;
float:left
line-height:50px;
text-align:center;
}
.t{
height:5px;
width:100%;
clear:both;
}
</style>
</head>
<?php>
$ip[0]=‘192.168.1.1‘;
$ip[1]=‘192.168.1.2‘;
$ip[2]=‘192.168.1.3‘;
$ip[3]=‘192.168.1.4‘;
......//可以将所有电脑的IP地址按顺序存在一个数组内
for($i=0;$<36;$i++){
if(!($i%6))//没6个换行一次,方便看
{
echo "<div class=‘t‘></div>"
}
exec("ping $ip[$i] -n 1",$output, $status);
if($status)//网络不通
{
echo "<div class=‘box‘ style=‘background:red‘>";
echo "$ip[$i]<br>网络不通“;
echo "</div>"
}
if(!$status)//网络通畅
{
echo "<div class=‘box‘ style=‘background:green‘>";
echo "$ip[$i]<br>网络通畅";
echo "</div>"
}
?>
这样只要访问该网页,就能一目了然的知道网络的通断性如何了(代码并非直接从源文件中复制出的,使用请注意)