diff options
-rwxr-xr-x | usr/local/www/diag_traceroute.php | 127 |
1 files changed, 72 insertions, 55 deletions
diff --git a/usr/local/www/diag_traceroute.php b/usr/local/www/diag_traceroute.php index 4b01d8a..31dd376 100755 --- a/usr/local/www/diag_traceroute.php +++ b/usr/local/www/diag_traceroute.php @@ -67,76 +67,93 @@ if ($_POST || $_REQUEST['host']) { } if (!$input_errors) { + $gateway = $_REQUEST['gateway']; $do_traceroute = true; $host = $_REQUEST['host']; $ttl = $_REQUEST['ttl']; - + $resolve = $_REQUEST['resolve']; } -} +} else + $resolve = true; + if (!isset($do_traceroute)) { $do_traceroute = false; $host = ''; $ttl = DEFAULT_TTL; } + ?> <?php if ($input_errors) print_input_errors($input_errors); ?> - <form action="diag_traceroute.php" method="post" name="iform" id="iform"> - <table width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> - <td colspan="2" valign="top" class="listtopic"><?=gettext("Traceroute");?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Host");?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Maximum number of hops");?></td> - <td width="78%" class="vtable"> + <form action="diag_traceroute.php" method="post" name="iform" id="iform"> + <table width="100%" border="0" cellpadding="6" cellspacing="0"> + <tr> + <td colspan="2" valign="top" class="listtopic"><?=gettext("Traceroute");?></td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Host");?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="host" type="text" class="formfld" id="host" size="20" value="<?=htmlspecialchars($host);?>"></td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway"); ?></td> + <td width="78%" class="vtable"> + <select name="gateway" class="formfld"> + <option value="default" <?php echo ($interface == "default" ? "selected" : "") ?>>Default</option> + <?php $gateways = return_gateways_array(); + foreach ($gateways as $gwname => $gwitem): ?> + <option value="<?=$gwitem['interface'];?>" <?php if (!link_interface_to_bridge($gwitem['friendlyiface']) && $gwitem['interface'] == $gateway) echo "selected"; ?>> + <?=htmlspecialchars($gwname);?> + </option> + <?php endforeach; ?> + </select> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Maximum number of hops");?></td> + <td width="78%" class="vtable"> <select name="ttl" class="formfld" id="ttl"> - <?php for ($i = 1; $i <= MAX_TTL; $i++): ?> - <option value="<?=$i;?>" <?php if ($i == $ttl) echo "selected"; ?>><?=$i;?></option> - <?php endfor; ?> - </select></td> - </tr> - - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Use ICMP");?></td> - <td width="78%" class="vtable"> + <?php for ($i = 1; $i <= MAX_TTL; $i++): ?> + <option value="<?=$i;?>" <?php if ($i == $ttl) echo "selected"; ?>><?=$i;?></option> + <?php endfor; ?> + </select> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Reverse Address Lookup");?></td> + <td width="78%" class="vtable"> + <input name="resolve" type="checkbox"<?php echo (!isset($resolve) ? "" : " CHECKED"); ?>> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Use ICMP");?></td> + <td width="78%" class="vtable"> <input name="useicmp" type="checkbox"<?php if($_REQUEST['useicmp']) echo " CHECKED"; ?>> - </td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"> - <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Traceroute");?>"> </td> - </tr> - <tr> + </tr> + <tr> + <td width="22%" valign="top"> </td> + <td width="78%"> + <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Traceroute");?>"> + </td> + </tr> + <tr> <td valign="top" colspan="2"> - <p><span class="vexpl"><span class="red"><b><?=gettext("Note: ");?></b></span><?=gettext("Traceroute may take a while to complete. You may hit the Stop button on your browser at any time to see the progress of failed traceroutes.");?></span><p> - <?php if ($do_traceroute) { - echo "<font face='terminal' size='2'>"; - echo("<br><strong>" . gettext("Traceroute output:") . "</strong><br>"); - echo('<pre>'); - ob_end_flush(); - if($_REQUEST['useicmp']) - $useicmp = "-I"; - else - $useicmp = ""; - system("/usr/sbin/traceroute $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host)); - system("/usr/sbin/traceroute6 $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host)); - echo('</pre>'); - } - ?> + <p><span class="vexpl"><span class="red"><b><?=gettext("Note: ");?></b></span><?=gettext("Traceroute may take a while to complete. You may hit the Stop button on your browser at any time to see the progress of failed traceroutes.");?></span><p> + <?php if ($do_traceroute) { + echo "<font face='terminal' size='2'>"; + echo("<br><strong>" . gettext("Traceroute output:") . "</strong><br>"); + echo('<pre>'); + ob_end_flush(); + $useicmp = isset($_REQUEST['useicmp']) ? "-I" : ""; + $srcint = ($gateway != "default") ? "-i " . escapeshellarg(get_real_interface($gateway)) : ""; + $n = isset($resolve) ? "" : "-n"; + system("/usr/sbin/traceroute $n $srcint $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host)); + system("/usr/sbin/traceroute6 $n $srcint $useicmp -w 2 -m " . escapeshellarg($ttl) . " " . escapeshellarg($host)); + echo('</pre>'); + } + ?> </td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"> - <span class="vexpl"><b><?=gettext("Note: ");?></b><?=gettext("Multi-wan is not supported from this utility currently.");?></span> - </td> - </tr> - </table> + </tr> + </table> </form> <?php include("fend.inc"); ?> |