&1';
exec($nc_cmd, $result, $retval);
// echo "NC CMD: {$nc_cmd}\n\n";
if (!empty($result)) {
if (is_array($result)) {
foreach ($result as $resline) {
$ncoutput .= htmlspecialchars($resline) . "\n";
}
} else {
$ncoutput .= htmlspecialchars($result);
}
}
}
}
include("head.inc");
// Handle the display of all messages here where the user can readily see them
if ($input_errors) {
print_input_errors($input_errors);
} else {
// New page
if (empty($result) && $retval != 0 && !$showtext) {
print('
This page allows you to perform a simple TCP connection test to determine if a host is up and accepting connections on a given port.' .
' This test does not function for UDP since there is no way to reliably determine if a UDP port accepts connections in this manner.
');
}
// Good host & port
if ($retval == 0 && $do_testport == 1) {
if (!$showtext) {
print(''.gettext("Port test to host: " . $host . " Port: " . $port . " successful").'
');
} else {
print(''.gettext("Port test to host: " . $host . " Port: " . $port . " successful") . '. Any text received from the host will be shown below the form.
');
}
}
// netcat exit value != 0
if ($retval != 0 && !empty($result)) {
if ($showtext) {
print(''.gettext('No output received, or connection failed. Try with "Show Remote Text" unchecked first.').'
');
} else {
print(''.gettext('Connection failed.').'
');
}
}
}
$form = new Form('Test');
$section = new Form_Section('Test Port');
$section->addInput(new Form_Input(
'host',
'Hostname',
'text',
$host,
['placeholder' => 'Hostname to look up.']
));
$section->addInput(new Form_Input(
'port',
'Port',
'text',
$port,
['placeholder' => 'Port to test.']
));
$section->addInput(new Form_Input(
'srcport',
'Source Port',
'text',
$srcport,
['placeholder' => 'Typically left blank.']
));
$section->addInput(new Form_Checkbox(
'showtext',
'Remote text',
'Show remote text',
$showtext
))->setHelp("Shows the text given by the server when connecting to the port. If checked it will take 10+ seconds to display in a panel below this form.");
$section->addInput(new Form_Select(
'sourceip',
'Source Address',
$sourceip,
['' => 'Any'] + get_possible_traffic_source_addresses(true)
))->setHelp('Select source address for the trace');
$section->addInput(new Form_Select(
'ipprotocol',
'IP Protocol',
$ipprotocol,
array('ipv4' => 'IPv4', 'ipv6' => 'IPv6')
))->setHelp("If you force IPv4 or IPv6 and use a hostname that does not contain a result using that protocol, it will result in an error." .
" For example if you force IPv4 and use a hostname that only returns an AAAA IPv6 IP address, it will not work.");
$form->add($section);
print $form;
if ($ncoutput && !empty($result) && $showtext && $retval == 0): ?>