对于一个大网络来讲,一般都有内网,有内网就有复杂的路由问题,一个机器要和很多其它机器通信,往往需要在机器上添加大量的路由,到一定程度,连自己都不知道那些路由有效,那些路由无效了,下面给出一个检查路由的php脚本:
<?php
// filename: checkroute.php
// check route use ping command
// eg : route -n | egrep -v "IP|De|0\.0\.0\.0" |cut -d " " -f 1 | php checkroute.php
$arropt = getopt("f:v");
if(isset($arropt[‘f’])) {
if(!($fp = fopen($arropt[‘f’],‘r’))){
die("open file $f error\n");
}
} else {
$fp = STDIN;
}
$debug = false;
if(isset($arropt[‘v’])) $debug = true;
while(!feof($fp)) {
$line = trim(fgets($fp));
if($line == ”) continue;
$ip = preg_replace("/\.0$/",".1",$line);
$cmd = "/bin/ping -c 1 -W 1 $ip 2>1 >/dev/null";
debug($cmd);
$result = @exec($cmd,$arr_ret,$retcode);
if($retcode != 0){
echo $line."\n";
}
}
function debug($msg) {
global $debug;
if($debug) {
echo $msg."\n";
}
}
?>