0

shell_exec("traceroute IPaddress)戻り値traceroute to IPaddress (IPaddress), 30 hops max, 40 byte packets

問題が発生した場所を特定できるように、ホップの実際のリストを取得するにはどうすればよいですか?

4

2 に答える 2

1

stderrこれらのメッセージは、通常の の代わりに書き込まれるはずなstdoutので、出力に表示される理由がよくわかりません。

出力とプロセスの戻りコードの両方をキャプチャするため、代わりにshell_exec()使用することをお勧めします。exec()

exec('traceroute example.com 2>&1', $out, $code);
if ($code) {
    die("An error occurred while trying to traceroute: " . join("\n", $out);
}
print_r($out);

コマンドを少し高速化するには、-n実行時にオプションを使用tracerouteして、中間ホップの DNS ルックアップを行う必要がないようにすることができます。

traceroute実行には時間がかかる場合があることに注意してください。コマンドラインで実行すると、* * *時間がかかる行が表示されることがあります。

于 2012-12-04T12:07:22.560 に答える
0

exec を使用して、その 2 番目のパラメーターを確認します。

string exec ( string $command [, array &$output [, int &$return_var ]] )

例 :

<?php

exec('traceroute test.com -m 2', $output);
var_dump($output); 
于 2012-12-04T11:34:23.590 に答える