".__('The agent hasn\'t got IP').'';
return;
}
echo "
";
echo '
';
echo "
';
$operation = get_parameter('operation', 0);
$community = get_parameter('community', 'public');
$ip = get_parameter('select_ips');
if (!validate_address($ip)) {
ui_print_error_message(__('The ip or dns name entered cannot be resolved'));
} else {
switch ($operation) {
case 1:
$traceroute = whereis_the_command('traceroute');
if (empty($traceroute)) {
ui_print_error_message(__('Traceroute executable does not exist.'));
} else {
echo '
'.__('Traceroute to ').$ip.'
';
echo '
';
echo system("$traceroute $ip");
echo '
';
}
break;
case 2:
$ping = whereis_the_command('ping');
if (empty($ping)) {
ui_print_error_message(__('Ping executable does not exist.'));
} else {
echo '
'.__('Ping to %s', $ip).'
';
echo '
';
echo system("$ping -c 5 $ip");
echo '
';
}
break;
case 4:
$nmap = whereis_the_command('nmap');
if (empty($nmap)) {
ui_print_error_message(__('Nmap executable does not exist.'));
} else {
echo '
'.__('Basic TCP Scan on ').$ip.'
';
echo '
';
echo system("$nmap -F $ip");
echo '
';
}
break;
case 5:
echo '
'.__('Domain and IP information for ').$ip.'
';
$dig = whereis_the_command('dig');
if (empty($dig)) {
ui_print_error_message(__('Dig executable does not exist.'));
} else {
echo '
';
echo system("dig $ip");
echo '
';
}
$whois = whereis_the_command('whois');
if (empty($whois)) {
ui_print_error_message(__('Whois executable does not exist.'));
} else {
echo '
';
echo system("whois $ip");
echo '
';
}
break;
case 3:
echo '
'.__('SNMP information for ').$ip.'
';
$snmpget = whereis_the_command('snmpget');
if (empty($snmpget)) {
ui_print_error_message(__('SNMPget executable does not exist.'));
} else {
echo '
'.__('Uptime').'
';
echo '
';
echo exec("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
echo '
';
echo '
'.__('Device info').'
';
echo '
';
echo system("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
echo '
';
echo '
Interface Information
';
echo '
';
echo ''.__('Interface');
echo ' | '.__('Status');
$int_max = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.1.0 ");
for ($ax = 0; $ax < $int_max; $ax++) {
$interface = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.2.$ax ");
$estado = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.8.$ax ");
echo " |
---|
$interface | $estado";
}
echo ' |
';
}
break;
}
}
echo '
';
}
function godmode_net_tools()
{
global $config;
check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
'Trying to access Profile Management'
);
include 'general/noaccess.php';
return;
}
ui_print_page_header(__('Config Network Tools'));
$update_traceroute = (bool) get_parameter('update_traceroute', 0);
$traceroute_path = (string) get_parameter('traceroute_path', '');
$ping_path = (string) get_parameter('ping_path', '');
$nmap_path = (string) get_parameter('nmap_path', '');
$dig_path = (string) get_parameter('dig_path', '');
$snmpget_path = (string) get_parameter('snmpget_path', '');
if ($update_traceroute) {
$network_tools_config = [];
$network_tools_config['traceroute_path'] = $traceroute_path;
$network_tools_config['ping_path'] = $ping_path;
$network_tools_config['nmap_path'] = $nmap_path;
$network_tools_config['dig_path'] = $dig_path;
$network_tools_config['snmpget_path'] = $snmpget_path;
$result = config_update_value('network_tools_config', json_encode($network_tools_config));
ui_print_result_message(
$result,
__('Set the paths.'),
__('Set the paths.')
);
} else {
if (isset($config['network_tools_config'])) {
$network_tools_config_output = io_safe_output($config['network_tools_config']);
$network_tools_config = json_decode($network_tools_config_output, true);
$traceroute_path = $network_tools_config['traceroute_path'];
$ping_path = $network_tools_config['ping_path'];
$nmap_path = $network_tools_config['nmap_path'];
$dig_path = $network_tools_config['dig_path'];
$snmpget_path = $network_tools_config['snmpget_path'];
}
}
$table = null;
$table->width = '100%';
$table->data = [];
$table->data[0][0] = __('Traceroute path');
$table->data[0][0] .= ui_print_help_tip(__('If empty, %s will search the traceroute system.', get_product_name()), true);
$table->data[0][1] = html_print_input_text('traceroute_path', $traceroute_path, '', 40, 255, true);
$table->data[1][0] = __('Ping path');
$table->data[1][0] .= ui_print_help_tip(__('If empty, %s will search the ping system.', get_product_name()), true);
$table->data[1][1] = html_print_input_text('ping_path', $ping_path, '', 40, 255, true);
$table->data[2][0] = __('Nmap path');
$table->data[2][0] .= ui_print_help_tip(__('If empty, %s will search the nmap system.', get_product_name()), true);
$table->data[2][1] = html_print_input_text('nmap_path', $nmap_path, '', 40, 255, true);
$table->data[3][0] = __('Dig path');
$table->data[3][0] .= ui_print_help_tip(__('If empty, %s will search the dig system', get_product_name()), true);
$table->data[3][1] = html_print_input_text('dig_path', $dig_path, '', 40, 255, true);
$table->data[4][0] = __('Snmpget path');
$table->data[4][0] .= ui_print_help_tip(__('If empty, %s will search the snmpget system.', get_product_name()), true);
$table->data[4][1] = html_print_input_text('snmpget_path', $snmpget_path, '', 40, 255, true);
echo '