php popen traceroute并不总是返回

时间:2013-01-31 09:56:29

标签: php windows popen traceroute

我必须在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的数量,然后转到下一个。它大概每四或五个跟踪路由发生一次。

我怎样才能让它每次都有效?

0 个答案:

没有答案