fixed validate ip for create agent and network tools
This commit is contained in:
parent
5f97dd2c7c
commit
b44ee554c6
|
@ -155,99 +155,104 @@ function main_net_tools () {
|
||||||
$community = get_parameter ("community", "public");
|
$community = get_parameter ("community", "public");
|
||||||
$ip = get_parameter("select_ips");
|
$ip = get_parameter("select_ips");
|
||||||
|
|
||||||
switch($operation) {
|
if(!validate_address($ip)){
|
||||||
case 1:
|
ui_print_error_message(__('The ip or dns name entered cannot be resolved'));
|
||||||
$traceroute = whereis_the_command ('traceroute');
|
}
|
||||||
if (empty($traceroute)) {
|
else{
|
||||||
ui_print_error_message(__('Traceroute executable does not exist.'));
|
switch($operation) {
|
||||||
}
|
case 1:
|
||||||
else {
|
$traceroute = whereis_the_command ('traceroute');
|
||||||
echo "<h3>".__("Traceroute to "). $ip. "</h3>";
|
if (empty($traceroute)) {
|
||||||
echo "<pre>";
|
ui_print_error_message(__('Traceroute executable does not exist.'));
|
||||||
echo system ("$traceroute $ip");
|
|
||||||
echo "</pre>";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
$ping = whereis_the_command ('ping');
|
|
||||||
if (empty($ping)) {
|
|
||||||
ui_print_error_message(__('Ping executable does not exist.'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo "<h3>" . __("Ping to %s", $ip) . "</h3>";
|
|
||||||
echo "<pre>";
|
|
||||||
echo system ("$ping -c 5 $ip");
|
|
||||||
echo "</pre>";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
$nmap = whereis_the_command ('nmap');
|
|
||||||
if (empty($nmap)) {
|
|
||||||
ui_print_error_message(__('Nmap executable does not exist.'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo "<h3>".__("Basic TCP Scan on "). $ip. "</h3>";
|
|
||||||
echo "<pre>";
|
|
||||||
echo system ("$nmap -F $ip");
|
|
||||||
echo "</pre>";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
echo "<h3>".__("Domain and IP information for "). $ip. "</h3>";
|
|
||||||
|
|
||||||
$dig = whereis_the_command ('dig');
|
|
||||||
if (empty($dig)) {
|
|
||||||
ui_print_error_message(__('Dig executable does not exist.'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo "<pre>";
|
|
||||||
echo system ("dig $ip");
|
|
||||||
echo "</pre>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$whois = whereis_the_command ('whois');
|
|
||||||
if (empty($whois)) {
|
|
||||||
ui_print_error_message(__('Whois executable does not exist.'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo "<pre>";
|
|
||||||
echo system ("whois $ip");
|
|
||||||
echo "</pre>";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
echo "<h3>".__("SNMP information for "). $ip. "</h3>";
|
|
||||||
|
|
||||||
$snmpget = whereis_the_command ('snmpget');
|
|
||||||
if (empty($snmpget)) {
|
|
||||||
ui_print_error_message(__('SNMPget executable does not exist.'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo "<h4>" . __("Uptime") . "</h4>";
|
|
||||||
echo "<pre>";
|
|
||||||
echo exec ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
|
|
||||||
echo "</pre>";
|
|
||||||
echo "<h4>" . __("Device info") . "</h4>";
|
|
||||||
echo "<pre>";
|
|
||||||
|
|
||||||
echo system ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
|
|
||||||
echo "</pre>";
|
|
||||||
|
|
||||||
echo "<h4>Interface Information</h4>";
|
|
||||||
echo "<table class=databox>";
|
|
||||||
echo "<tr><th>".__("Interface");
|
|
||||||
echo "<th>".__("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 "<tr><td>$interface<td>$estado";
|
|
||||||
}
|
}
|
||||||
echo "</table>";
|
else {
|
||||||
}
|
echo "<h3>".__("Traceroute to "). $ip. "</h3>";
|
||||||
break;
|
echo "<pre>";
|
||||||
|
echo system ("$traceroute $ip");
|
||||||
|
echo "</pre>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$ping = whereis_the_command ('ping');
|
||||||
|
if (empty($ping)) {
|
||||||
|
ui_print_error_message(__('Ping executable does not exist.'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<h3>" . __("Ping to %s", $ip) . "</h3>";
|
||||||
|
echo "<pre>";
|
||||||
|
echo system ("$ping -c 5 $ip");
|
||||||
|
echo "</pre>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$nmap = whereis_the_command ('nmap');
|
||||||
|
if (empty($nmap)) {
|
||||||
|
ui_print_error_message(__('Nmap executable does not exist.'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<h3>".__("Basic TCP Scan on "). $ip. "</h3>";
|
||||||
|
echo "<pre>";
|
||||||
|
echo system ("$nmap -F $ip");
|
||||||
|
echo "</pre>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
echo "<h3>".__("Domain and IP information for "). $ip. "</h3>";
|
||||||
|
|
||||||
|
$dig = whereis_the_command ('dig');
|
||||||
|
if (empty($dig)) {
|
||||||
|
ui_print_error_message(__('Dig executable does not exist.'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<pre>";
|
||||||
|
echo system ("dig $ip");
|
||||||
|
echo "</pre>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$whois = whereis_the_command ('whois');
|
||||||
|
if (empty($whois)) {
|
||||||
|
ui_print_error_message(__('Whois executable does not exist.'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<pre>";
|
||||||
|
echo system ("whois $ip");
|
||||||
|
echo "</pre>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
echo "<h3>".__("SNMP information for "). $ip. "</h3>";
|
||||||
|
|
||||||
|
$snmpget = whereis_the_command ('snmpget');
|
||||||
|
if (empty($snmpget)) {
|
||||||
|
ui_print_error_message(__('SNMPget executable does not exist.'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<h4>" . __("Uptime") . "</h4>";
|
||||||
|
echo "<pre>";
|
||||||
|
echo exec ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
|
||||||
|
echo "</pre>";
|
||||||
|
echo "<h4>" . __("Device info") . "</h4>";
|
||||||
|
echo "<pre>";
|
||||||
|
|
||||||
|
echo system ("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
echo "<h4>Interface Information</h4>";
|
||||||
|
echo "<table class=databox>";
|
||||||
|
echo "<tr><th>".__("Interface");
|
||||||
|
echo "<th>".__("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 "<tr><td>$interface<td>$estado";
|
||||||
|
}
|
||||||
|
echo "</table>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
|
@ -146,10 +146,20 @@ $module_macros = array ();
|
||||||
|
|
||||||
// Create agent
|
// Create agent
|
||||||
if ($create_agent) {
|
if ($create_agent) {
|
||||||
|
$mssg_warning = 0;
|
||||||
$nombre_agente = (string) get_parameter_post("agente",'');
|
$nombre_agente = (string) get_parameter_post("agente",'');
|
||||||
$direccion_agente = (string) get_parameter_post("direccion",'');
|
$direccion_agente = (string) get_parameter_post("direccion",'');
|
||||||
|
|
||||||
|
//safe_output only validate ip
|
||||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||||
|
|
||||||
|
if(!validate_address($direccion_agente)){
|
||||||
|
$mssg_warning = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//safe-input before validate ip
|
||||||
$direccion_agente = io_safe_input($direccion_agente);
|
$direccion_agente = io_safe_input($direccion_agente);
|
||||||
|
|
||||||
$grupo = (int) get_parameter_post ("grupo");
|
$grupo = (int) get_parameter_post ("grupo");
|
||||||
$intervalo = (string) get_parameter_post ("intervalo", SECONDS_5MINUTES);
|
$intervalo = (string) get_parameter_post ("intervalo", SECONDS_5MINUTES);
|
||||||
$comentarios = (string) get_parameter_post ("comentarios", '');
|
$comentarios = (string) get_parameter_post ("comentarios", '');
|
||||||
|
@ -209,8 +219,8 @@ if ($create_agent) {
|
||||||
// Create custom fields for this agent
|
// Create custom fields for this agent
|
||||||
foreach ($field_values as $key => $value) {
|
foreach ($field_values as $key => $value) {
|
||||||
db_process_sql_insert ('tagent_custom_data',
|
db_process_sql_insert ('tagent_custom_data',
|
||||||
array('id_field' => $key, 'id_agent' => $id_agente,
|
array('id_field' => $key, 'id_agent' => $id_agente,
|
||||||
'description' => $value));
|
'description' => $value));
|
||||||
}
|
}
|
||||||
// Create address for this agent in taddress
|
// Create address for this agent in taddress
|
||||||
if ( $direccion_agente != '') {
|
if ( $direccion_agente != '') {
|
||||||
|
@ -594,6 +604,10 @@ if ($create_agent) {
|
||||||
ui_print_result_message ($agent_created_ok,
|
ui_print_result_message ($agent_created_ok,
|
||||||
__('Successfully created'),
|
__('Successfully created'),
|
||||||
$agent_creation_error);
|
$agent_creation_error);
|
||||||
|
|
||||||
|
if($mssg_warning){
|
||||||
|
ui_print_warning_message(__('The ip or dns name entered cannot be resolved'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fix / Normalize module data
|
// Fix / Normalize module data
|
||||||
|
@ -635,10 +649,18 @@ $update_agent = (bool) get_parameter ('update_agent');
|
||||||
|
|
||||||
// Update AGENT
|
// Update AGENT
|
||||||
if ($update_agent) { // if modified some agent paramenter
|
if ($update_agent) { // if modified some agent paramenter
|
||||||
|
$mssg_warning = 0;
|
||||||
$id_agente = (int) get_parameter_post ("id_agente");
|
$id_agente = (int) get_parameter_post ("id_agente");
|
||||||
$nombre_agente = str_replace('`','‘',(string) get_parameter_post ("agente", ""));
|
$nombre_agente = str_replace('`','‘',(string) get_parameter_post ("agente", ""));
|
||||||
$direccion_agente = (string) get_parameter_post ("direccion", '');
|
$direccion_agente = (string) get_parameter_post ("direccion", '');
|
||||||
|
//safe_output only validate ip
|
||||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||||
|
|
||||||
|
if(!validate_address($direccion_agente)){
|
||||||
|
$mssg_warning = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//safe-input before validate ip
|
||||||
$direccion_agente = io_safe_input($direccion_agente);
|
$direccion_agente = io_safe_input($direccion_agente);
|
||||||
$address_list = (string) get_parameter_post ("address_list", '');
|
$address_list = (string) get_parameter_post ("address_list", '');
|
||||||
|
|
||||||
|
@ -698,6 +720,10 @@ if ($update_agent) { // if modified some agent paramenter
|
||||||
array('id_field' => $key,'id_agent' => $id_agente));
|
array('id_field' => $key,'id_agent' => $id_agente));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($mssg_warning){
|
||||||
|
ui_print_warning_message(__('The ip or dns name entered cannot be resolved'));
|
||||||
|
}
|
||||||
|
|
||||||
//Verify if there is another agent with the same name but different ID
|
//Verify if there is another agent with the same name but different ID
|
||||||
if ($nombre_agente == "") {
|
if ($nombre_agente == "") {
|
||||||
|
|
|
@ -2699,4 +2699,26 @@ function remove_right_zeros ($value) {
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns true or false if it is a valid ip
|
||||||
|
* checking ipv4 and ipv6 or resolves the name dns
|
||||||
|
* @param string address
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function validate_address($address){
|
||||||
|
if($address){
|
||||||
|
if(!filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
|
||||||
|
if(!filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
|
||||||
|
$ip_address_dns = gethostbyname($address);
|
||||||
|
if(!filter_var($ip_address_dns, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
|
||||||
|
if(!filter_var($ip_address_dns, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue