我必须在Windows上使用PHP尽快进行大量的traceroutes。这是我的代码:
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返回为空。所以基本上我的程序只显示traceroute的数量,然后转到下一个。它大概每四或五个跟踪路由发生一次。
我怎样才能让它每次都有效?