我必须在 Windows 上使用 PHP 尽快进行大量跟踪路由。这是我的代码:
function tracert($addresses){
set_time_limit(300);
$nbAddresses=count($addresses);
for($i=0; $i<$nbAddresses; $i++){
$tracerts[$i]=popen('tracert '.$addresses[$i], 'r');
}
for($i=0; $i<$nbAddresses; $i++){
$results[$i]="<strong>".($i+1).")</strong>";
while(!feof($tracerts[$i])){
$results[$i].=fgets($tracerts[$i])."<br/>";
}
fclose($tracerts[$i]);
}
return $results;
}
我循环了两次:在第一个循环中,我使用 popen() 启动 traceroutes,在第二个循环中,我使用 fgets() 将结果返回到表中。
但有时,它不起作用:traceroute 返回为空。所以基本上我的程序只显示跟踪路由的编号并转到下一个。它大约每四到五个跟踪路由发生一次。
我怎样才能让它每次都工作?