diff --git a/Dockerfile b/Dockerfile index f1ebf974..59271d06 100755 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ ENV USER=pi USER_ID=1000 USER_GID=1000 PORT=20211 # Todo, do we still need all these packages? I can already see sudo which isn't needed RUN apt-get update \ - && apt-get install --no-install-recommends tini snmp ca-certificates curl libwww-perl arp-scan perl apt-utils cron sudo nginx-light php php-cgi php-fpm php-sqlite3 php-curl sqlite3 dnsutils net-tools python3 iproute2 nmap python3-pip zip systemctl usbutils -y \ + && apt-get install --no-install-recommends tini snmp ca-certificates curl libwww-perl arp-scan perl apt-utils cron sudo nginx-light php php-cgi php-fpm php-sqlite3 php-curl sqlite3 dnsutils net-tools python3 iproute2 nmap python3-pip zip systemctl usbutils iputils-ping traceroute -y \ && pip3 install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi \ && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ && apt-get clean autoclean \ diff --git a/front/deviceDetails.php b/front/deviceDetails.php index f7baf7d8..fd32a86f 100755 --- a/front/deviceDetails.php +++ b/front/deviceDetails.php @@ -99,20 +99,22 @@
| Loading... |
| = lang("DevDetail_Loading");?> |
| Loading... | '+ + processing: '
| = lang('DevDetail_Loading');?> | '+ ''+ ' |
| Loading... | '+ + processing: '
| = lang('DevDetail_Loading');?> | '+ ''+ ' |
| Loading... | '+ + processing: '
| = lang('DevDetail_Loading');?> | '+ ''+ ' |
"; +echo $output; +echo ""; + +?> diff --git a/front/php/server/mtr.php b/front/php/server/mtr.php new file mode 100644 index 00000000..5e541e64 --- /dev/null +++ b/front/php/server/mtr.php @@ -0,0 +1,40 @@ +"; + echo $output; + echo ""; + exit; +} + +// Test with the "Mtr" command +$output = shell_exec("mtr --report -c 4 $ip"); + +// Show the result +echo "
"; +echo $output; +echo ""; + +?> diff --git a/front/php/server/nslookup.php b/front/php/server/nslookup.php new file mode 100644 index 00000000..0a554813 --- /dev/null +++ b/front/php/server/nslookup.php @@ -0,0 +1,40 @@ +"; + echo $output; + echo ""; + exit; +} + +// Test with the "nslookup" command +$output = shell_exec("nslookup $ip"); + +// Show the result +echo "
"; +echo $output; +echo ""; + +?> diff --git a/front/php/server/ping.php b/front/php/server/ping.php new file mode 100644 index 00000000..50f1f6bb --- /dev/null +++ b/front/php/server/ping.php @@ -0,0 +1,40 @@ +"; + echo $output; + echo ""; + exit; +} + +// Perform a test with the PING command +$output = shell_exec("ping -c4 $ip"); + +// Show the result +echo "
"; +echo $output; +echo ""; + +?> diff --git a/front/php/server/traceroute.php b/front/php/server/traceroute.php new file mode 100644 index 00000000..2b458152 --- /dev/null +++ b/front/php/server/traceroute.php @@ -0,0 +1,40 @@ +"; + echo $output; + echo ""; + exit; +} + +// Test with the "Traceroute" command +$output = shell_exec("traceroute $ip"); + +// Show the result +echo "
"; +echo $output; +echo ""; + +?> diff --git a/front/php/server/wol.php b/front/php/server/wol.php new file mode 100644 index 00000000..46644ae6 --- /dev/null +++ b/front/php/server/wol.php @@ -0,0 +1,90 @@ +"; + echo $output; + echo ""; + exit; +} + +// Get the port +$port = isset($_GET['port']) ? $_GET['port'] : 9; + +// Validate the port +if (!filter_var($port, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 65535)))) { + // Error message + $output = lang('DevDetail_Tab_Tools_WOL_Error_Port'); + // Show the result + echo "
"; + echo $output; + echo ""; + exit; +} + +// Get password +$password = isset($_GET['password']) ? $_GET['password'] : ''; + +// Validate the password (regular expression requires that the password has at least 8 characters, a lowercase letter, an uppercase letter and a number) +//if (!filter_var($password, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/')))) { + // Error message +// $output = lang('DevDetail_Tab_Tools_WOL_Error_Password'); + // Show the result +// echo "
"; +// echo $output; +// echo ""; +// exit; +//} + +// Create the magic packet +$magicPacket = pack('H*', 'FF FF FF FF FF FF FF ' . $mac); + +// Create a UDP socket +$socket = socket_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + +// Set the socket options +socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, true); + +// Send the WoL packet +socket_sendto($socket, $magicPacket, strlen($magicPacket), 0, '255.255.255.255', $port); + +// Close the socket +socket_close($socket); + +// Print a message to indicate that the device has been woken up +echo "
";
+$output = lang('DevDetail_Tab_Tools_WOL_Message');
+echo $output;
+echo "";
+
+?>
diff --git a/front/php/templates/language/de_de.json b/front/php/templates/language/de_de.json
index 5869c53e..31aa6830 100755
--- a/front/php/templates/language/de_de.json
+++ b/front/php/templates/language/de_de.json
@@ -116,7 +116,32 @@
"DevDetail_Shortcut_Presence" : "Anwesenheit",
"DevDetail_Shortcut_DownAlerts" : "Down Meldungen",
"DevDetail_Tab_Details" : "Details",
+ "DevDetail_Tab_Internet_Info_Title": "Internetinformationen",
+ "DevDetail_Tab_Internet_Info_Start": "Internet-Info starten",
+ "DevDetail_Tab_Internet_Info_Error": "Es ist ein Fehler aufgetreten",
+ "DevDetail_Tab_Internet_Speedtest_Title": "Online Speedtest",
+ "DevDetail_Tab_Internet_Speedtest_Start": "Speedtest starten",
+ "DevDetail_Tab_Internet_Speedtest_Error": "Ein Fehler ist aufgetreten",
"DevDetail_Tab_Tools": " Tools",
+ "DevDetail_Tab_Tools_Mtr_Title": "Mtr",
+ "DevDetail_Tab_Tools_Mtr_Start": "Mtr starten",
+ "DevDetail_Tab_Tools_Mtr_Error": "Fehler: IP-Adresse ist ungültig",
+ "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
+ "DevDetail_Tab_Tools_Nslookup_Start": "Nslookup starten",
+ "DevDetail_Tab_Tools_Nslookup_Error": "Fehler: IP-Adresse ist ungültig",
+ "DevDetail_Tab_Tools_Ping_Title": "Ping",
+ "DevDetail_Tab_Tools_Ping_Start": "Ping starten",
+ "DevDetail_Tab_Tools_Ping_Error": "Fehler: IP-Adresse ist ungültig",
+ "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
+ "DevDetail_Tab_Tools_Traceroute_Start": "Traceroute starten",
+ "DevDetail_Tab_Tools_Traceroute_Error": "Fehler: IP-Adresse ist ungültig",
+ "DevDetail_Tab_Tools_WOL_Title": "Wake-on-LAN",
+ "DevDetail_Tab_Tools_WOL_Start": "Wake-on-LAN starten",
+ "DevDetail_Tab_Tools_WOL_Error": "Es ist ein Fehler aufgetreten",
+ "DevDetail_Tab_Tools_WOL_Error_MAC": "Fehler: MAC-Adresse ist ungültig",
+ "DevDetail_Tab_Tools_WOL_Error_Port": "Fehler: Port ist ungültig",
+ "DevDetail_Tab_Tools_WOL_Error_Password": "Fehler: Passwort ist ungültig",
+ "DevDetail_Tab_Tools_WOL_Message": "WOL-Paket gesendet",
"DevDetail_Tab_Nmap" : "Nmap",
"DevDetail_Tab_NmapTableIndex": "Index",
"DevDetail_Tab_NmapTableTime": "Zeit",
@@ -137,10 +162,9 @@
"DevDetail_Tab_PholusTableIP" : "IP",
"DevDetail_Tab_PholusTableEntry" : "Eintragstyp",
"DevDetail_Tab_PholusTableValue" : "Wert",
- "DevDetail_Tab_PholusTableExtra" : "Extra",
- "DevDetail_Internet_Speedtest" : "Online Speedtest",
- "DevDetail_Internet_Speedtest_Start" : "Speedtest starten",
- "DevDetail_MainInfo_Title" : "Haupt Infos",
+ "DevDetail_Tab_PholusTableExtra" : "Extra",
+ "DevDetail_Loading" : "Laden ...",
+ "DevDetail_MainInfo_Title" : "Haupt Infos",
"DevDetail_MainInfo_mac" : "MAC",
"DevDetail_MainInfo_Name" : "Name",
"DevDetail_MainInfo_Owner" : "Eigen-tümer",
diff --git a/front/php/templates/language/en_us.json b/front/php/templates/language/en_us.json
index 7164d886..8cc6e555 100755
--- a/front/php/templates/language/en_us.json
+++ b/front/php/templates/language/en_us.json
@@ -139,7 +139,32 @@
"DevDetail_Shortcut_Presence" : "Presence",
"DevDetail_Shortcut_DownAlerts" : "Down Alerts",
"DevDetail_Tab_Details" : " Details",
- "DevDetail_Tab_Tools": " Tools",
+ "DevDetail_Tab_Internet_Info_Title": "Internet Info",
+ "DevDetail_Tab_Internet_Info_Start": "Start Internet Info",
+ "DevDetail_Tab_Internet_Info_Error": "An error has occurred",
+ "DevDetail_Tab_Internet_Speedtest_Title" : "Online Speedtest",
+ "DevDetail_Tab_Internet_Speedtest_Start" : "Start Speedtest",
+ "DevDetail_Tab_Internet_Speedtest_Error" : "An error has occurred",
+ "DevDetail_Tab_Tools": " Tools",
+ "DevDetail_Tab_Tools_Mtr_Title" : "Mtr",
+ "DevDetail_Tab_Tools_Mtr_Start" : "Start Mtr",
+ "DevDetail_Tab_Tools_Mtr_Error" : "Error: IP address is not valid",
+ "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
+ "DevDetail_Tab_Tools_Nslookup_Start": "Start Nslookup",
+ "DevDetail_Tab_Tools_Nslookup_Error": "Error: IP address is not valid",
+ "DevDetail_Tab_Tools_Ping_Title": "Ping",
+ "DevDetail_Tab_Tools_Ping_Start": "Start Ping",
+ "DevDetail_Tab_Tools_Ping_Error": "Error: IP address is not valid",
+ "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
+ "DevDetail_Tab_Tools_Traceroute_Start": "Start Traceroute",
+ "DevDetail_Tab_Tools_Traceroute_Error": "Error: IP address is not valid",
+ "DevDetail_Tab_Tools_WOL_Title" : "Wake-on-LAN",
+ "DevDetail_Tab_Tools_WOL_Start" : "Start Wake-on-LAN",
+ "DevDetail_Tab_Tools_WOL_Error" : "An error has occurred",
+ "DevDetail_Tab_Tools_WOL_Error_MAC" : "Error: MAC address is invalid",
+ "DevDetail_Tab_Tools_WOL_Error_Port" : "Error: Port is invalid",
+ "DevDetail_Tab_Tools_WOL_Error_Password" : "Error: Password is invalid",
+ "DevDetail_Tab_Tools_WOL_Message" : "WOL package sent",
"DevDetail_Tab_Nmap" : " Nmap",
"DevDetail_Tab_Sessions" : " Sessions",
"DevDetail_Tab_Presence" : " Presence",
@@ -166,7 +191,8 @@
"DevDetail_Tab_NmapTablePort" : "Port",
"DevDetail_Tab_NmapTableState" : "State",
"DevDetail_Tab_NmapTableService" : "Service",
- "DevDetail_Tab_NmapTableExtra" : "Extra",
+ "DevDetail_Tab_NmapTableExtra" : "Extra",
+ "DevDetail_Loading" : "Loading...",
"DevDetail_MainInfo_Title" : " Main Info",
"DevDetail_MainInfo_mac" : "MAC",
"DevDetail_MainInfo_Name" : "Name",
@@ -175,9 +201,7 @@
"DevDetail_MainInfo_Type" : "Type",
"DevDetail_Type_hover" : "The Type of the device. If you select any of the pre-defined network devices (e.g.: AP, Firewall, Router, Switch...) they will show up in the Network tree configuration as possible parent network nodes.",
"DevDetail_Icon" : "Icon",
- "DevDetail_Icon_Descr" : "Enter a font awesome icon name without the fa- prefix or with complete class, e.g.: fa fa-brands fa-apple.",
- "DevDetail_Internet_Speedtest" : "Online Speedtest",
- "DevDetail_Internet_Speedtest_Start" : "Start Speedtest",
+ "DevDetail_Icon_Descr" : "Enter a font awesome icon name without the fa- prefix or with complete class, e.g.: fa fa-brands fa-apple.",
"DevDetail_MainInfo_Vendor" : "Vendor",
"DevDetail_Vendor_hover" : "Vendor should be auto-detected. You can overwrite or add your custom value.",
"DevDetail_MainInfo_Favorite" : "Favorite",
@@ -236,7 +260,7 @@
"BackDevDetail_Actions_Not_Registered" : "Action not registered: ",
"BackDevDetail_Actions_Ask_Run" : "Do you want to execute the action?",
"BackDevDetail_Tools_WOL_okay" : "The command was executed.",
- "BackDevDetail_Tools_WOL_error" : "The command was NOT executed.",
+ "BackDevDetail_Tools_WOL_error" : "The command was NOT executed.",
"DevDetail_Tools_WOL_noti" : "Wake-on-LAN",
"DevDetail_Tools_WOL_noti_text" : "The Wake-on-LAN command is sent to the broadcast address. If the target is not in the subnet/vlan of Pi.Alert, the target device will not respond.",
"DevDetail_Tools_WOL" : "Send Wol command to ",
diff --git a/front/php/templates/language/es_es.json b/front/php/templates/language/es_es.json
index b8aac324..e68fc41e 100755
--- a/front/php/templates/language/es_es.json
+++ b/front/php/templates/language/es_es.json
@@ -139,7 +139,32 @@
"DevDetail_Shortcut_Presence" : "Historial",
"DevDetail_Shortcut_DownAlerts" : "Alerta(s) de caída(s)",
"DevDetail_Tab_Details" : " Detalles",
- "DevDetail_Tab_Tools": " Herramientas",
+ "DevDetail_Tab_Internet_Info_Title": "Internet Info",
+ "DevDetail_Tab_Internet_Info_Start": "Iniciar Internet Info",
+ "DevDetail_Tab_Internet_Info_Error": "Se ha producido un error",
+ "DevDetail_Tab_Internet_Speedtest_Title": "Prueba de velocidad en línea",
+ "DevDetail_Tab_Internet_Speedtest_Start": "Iniciar prueba de velocidad",
+ "DevDetail_Tab_Internet_Speedtest_Error": "Se ha producido un error",
+ "DevDetail_Tab_Tools": " Herramientas",
+ "DevDetail_Tab_Tools_Mtr_Title": "Mtr",
+ "DevDetail_Tab_Tools_Mtr_Start": "Iniciar Mtr",
+ "DevDetail_Tab_Tools_Mtr_Error": "Error: la dirección IP no es válida",
+ "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
+ "DevDetail_Tab_Tools_Nslookup_Start": "Iniciar Nslookup",
+ "DevDetail_Tab_Tools_Nslookup_Error": "Error: la dirección IP no es válida",
+ "DevDetail_Tab_Tools_Ping_Title": "Ping",
+ "DevDetail_Tab_Tools_Ping_Start": "Iniciar Ping",
+ "DevDetail_Tab_Tools_Ping_Error": "Error: la dirección IP no es válida",
+ "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
+ "DevDetail_Tab_Tools_Traceroute_Start": "Iniciar Traceroute",
+ "DevDetail_Tab_Tools_Traceroute_Error": "Error: la dirección IP no es válida",
+ "DevDetail_Tab_Tools_WOL_Title" : "Wake-on-LAN",
+ "DevDetail_Tab_Tools_WOL_Start" : "Iniciar Wake-on-LAN",
+ "DevDetail_Tab_Tools_WOL_Error" : "Se ha producido un error",
+ "DevDetail_Tab_Tools_WOL_Error_MAC" : "Error: la dirección MAC no es válida",
+ "DevDetail_Tab_Tools_WOL_Error_Port" : "Error: el puerto no es válido",
+ "DevDetail_Tab_Tools_WOL_Error_Password" : "Error: la contraseña no es válida",
+ "DevDetail_Tab_Tools_WOL_Message" : "Paquete WOL enviado",
"DevDetail_Tab_Nmap" : " Nmap",
"DevDetail_Tab_Sessions" : " Sesiones",
"DevDetail_Tab_Presence" : " Historial",
@@ -166,15 +191,14 @@
"DevDetail_Tab_NmapTablePort": "Puerto",
"DevDetail_Tab_NmapTableState": "Estado",
"DevDetail_Tab_NmapTableService": "Servicio",
- "DevDetail_Tab_NmapTableExtra": "Extra",
+ "DevDetail_Tab_NmapTableExtra": "Extra",
+ "DevDetail_Loading" : "Cargando ...",
"DevDetail_MainInfo_Title" : " Información principal",
"DevDetail_MainInfo_mac" : "MAC",
"DevDetail_MainInfo_Name" : "Nombre",
"DevDetail_MainInfo_Owner" : "Propietario",
"DevDetail_MainInfo_Type" : "Tipo",
- "DevDetail_Icon" : "Icono",
- "DevDetail_Internet_Speedtest": "Prueba de velocidad en línea",
- "DevDetail_Internet_Speedtest_Start": "Iniciar prueba de velocidad",
+ "DevDetail_Icon" : "Icono",
"DevDetail_Icon_Descr" : "Ingrese un nombre de icono de fuente awesome sin el prefijo fa- o con clase completa, por ejemplo: fa fa-skin fa-apple.",
"DevDetail_MainInfo_Vendor" : "Proveedor",
"DevDetail_MainInfo_Favorite" : "Favorito",
@@ -214,7 +238,7 @@
"DevDetail_SessionTable_Disconnection" : "Desconexión",
"DevDetail_SessionTable_Duration" : "Duración",
"DevDetail_SessionTable_IP" : "Dirección IP",
- "DevDetail_SessionTable_Additionalinfo" : "Información adicional",
+ "DevDetail_SessionTable_Additionalinfo" : "Información adicional",
"DevDetail_Events_CheckBox" : "Ocultar eventos de conexión",
"DevDetail_Nmap_buttonFast" : "Exploración rápida",
"DevDetail_Nmap_buttonDefault" : "Escaneado predeterminado",