summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xusr/local/www/diag_traceroute.php127
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">&nbsp;</td>
- <td width="78%">
- <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Traceroute");?>">
</td>
- </tr>
- <tr>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</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">&nbsp;</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"); ?>
OpenPOWER on IntegriCloud