mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-04-23 00:39:07 -04:00
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"API_CUSTOM_SQL_description": "",
|
||||
"API_CUSTOM_SQL_name": "",
|
||||
"API_TOKEN_description": "",
|
||||
"API_CUSTOM_SQL_description": "Můžete specifikovat vlastní SQL dotaz, který vygeneruje JSON soubor a následně ho vystaví přes <a href=\"/php/server/query_json.php?file=table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> souborový endpoint</a>.",
|
||||
"API_CUSTOM_SQL_name": "Vlastní endpoint",
|
||||
"API_TOKEN_description": "API token pro zabezpečenou komunikaci. Vygenerujte ho, nebo zadejte jakoukoliv hodnotu. Je odesílán v hlavičce requestu a použit v <code>SYNC</code> pluginu, GraphQL serveru a dalších API endpointech. Můžete použít API endpointy pro vytvoření vlastních integrací, jak je popsáno v <a href=\"https://docs.netalertx.com/API\" target=\"_blank\">API dokumentaci</a>.",
|
||||
"API_TOKEN_name": "API token",
|
||||
"API_display_name": "API",
|
||||
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
|
||||
@@ -9,9 +9,9 @@
|
||||
"About_Exit": "Odhlásit",
|
||||
"About_Title": "Scanner síťové bezpečnosti a framework pro upozornění",
|
||||
"AppEvents_AppEventProcessed": "Zpracováno",
|
||||
"AppEvents_DateTimeCreated": "Zaznamenáno",
|
||||
"AppEvents_DateTimeCreated": "Zalogováno",
|
||||
"AppEvents_Extra": "Extra",
|
||||
"AppEvents_GUID": "",
|
||||
"AppEvents_GUID": "GUID aplikační události",
|
||||
"AppEvents_Helper1": "Pomocník 1",
|
||||
"AppEvents_Helper2": "Pomocník 2",
|
||||
"AppEvents_Helper3": "Pomocník 3",
|
||||
@@ -24,190 +24,190 @@
|
||||
"AppEvents_ObjectSecondaryID": "Sekundární ID",
|
||||
"AppEvents_ObjectStatus": "Logovaný stav",
|
||||
"AppEvents_ObjectStatusColumn": "Stavový sloupec",
|
||||
"AppEvents_ObjectType": "Typ objektu",
|
||||
"AppEvents_ObjectType": "Typ Objektu",
|
||||
"AppEvents_Plugin": "Plugin",
|
||||
"AppEvents_Type": "Typ",
|
||||
"BACKEND_API_URL_description": "",
|
||||
"BACKEND_API_URL_name": "AP URL backendu",
|
||||
"BACKEND_API_URL_description": "Použito pro umožnění komunikace frontendu s backendem. Výchozí hodnota je <code>/server</code> , která by neměla být měněna.",
|
||||
"BACKEND_API_URL_name": "URL API backendu",
|
||||
"BackDevDetail_Actions_Ask_Run": "Chcete akci spustit?",
|
||||
"BackDevDetail_Actions_Not_Registered": "Akce není zaregistrována. ",
|
||||
"BackDevDetail_Actions_Not_Registered": "Akce není zaregistrována: ",
|
||||
"BackDevDetail_Actions_Title_Run": "Spustit akci",
|
||||
"BackDevDetail_Copy_Ask": "",
|
||||
"BackDevDetail_Copy_Title": "",
|
||||
"BackDevDetail_Tools_WOL_error": "",
|
||||
"BackDevDetail_Tools_WOL_okay": "",
|
||||
"BackDevices_Arpscan_disabled": "",
|
||||
"BackDevices_Arpscan_enabled": "",
|
||||
"BackDevices_Backup_CopError": "",
|
||||
"BackDevices_Backup_Failed": "",
|
||||
"BackDevices_Backup_okay": "",
|
||||
"BackDevices_DBTools_DelDevError_a": "",
|
||||
"BackDevices_DBTools_DelDevError_b": "",
|
||||
"BackDevices_DBTools_DelDev_a": "",
|
||||
"BackDevices_DBTools_DelDev_b": "",
|
||||
"BackDevices_DBTools_DelEvents": "",
|
||||
"BackDevices_DBTools_DelEventsError": "",
|
||||
"BackDevices_DBTools_ImportCSV": "",
|
||||
"BackDevices_DBTools_ImportCSVError": "",
|
||||
"BackDevices_DBTools_ImportCSVMissing": "",
|
||||
"BackDevices_DBTools_Purge": "",
|
||||
"BackDevices_DBTools_UpdDev": "",
|
||||
"BackDevices_DBTools_UpdDevError": "",
|
||||
"BackDevices_DBTools_Upgrade": "",
|
||||
"BackDevices_DBTools_UpgradeError": "",
|
||||
"BackDevices_Device_UpdDevError": "",
|
||||
"BackDevices_Restore_CopError": "",
|
||||
"BackDevices_Restore_Failed": "",
|
||||
"BackDevices_Restore_okay": "",
|
||||
"BackDevices_darkmode_disabled": "",
|
||||
"BackDevices_darkmode_enabled": "",
|
||||
"CLEAR_NEW_FLAG_description": "",
|
||||
"CLEAR_NEW_FLAG_name": "",
|
||||
"CustProps_cant_remove": "",
|
||||
"DAYS_TO_KEEP_EVENTS_description": "",
|
||||
"DAYS_TO_KEEP_EVENTS_name": "",
|
||||
"BackDevDetail_Copy_Ask": "Zkopírovat detaily zařízení z výběru (vše na této stránce bude přepsáno)?",
|
||||
"BackDevDetail_Copy_Title": "Zkopírovat detaily",
|
||||
"BackDevDetail_Tools_WOL_error": "Příkaz NEBYL proveden.",
|
||||
"BackDevDetail_Tools_WOL_okay": "Příkaz byl proveden.",
|
||||
"BackDevices_Arpscan_disabled": "ARP-Scan zakázán",
|
||||
"BackDevices_Arpscan_enabled": "ARP-Scan povolen",
|
||||
"BackDevices_Backup_CopError": "Původní databázi se nepodařilo uložit.",
|
||||
"BackDevices_Backup_Failed": "Záloha byla privedena částečně úspěšně. Archiv nemohl být vytvořen nebo je prázdný.",
|
||||
"BackDevices_Backup_okay": "Záloha byla provedena úspěšně s novým archivem",
|
||||
"BackDevices_DBTools_DelDevError_a": "Chyba při odstranění zařízení",
|
||||
"BackDevices_DBTools_DelDevError_b": "Chyba při odstranění zařízení",
|
||||
"BackDevices_DBTools_DelDev_a": "Zařízení odstraněno",
|
||||
"BackDevices_DBTools_DelDev_b": "Zařízení odstraněna",
|
||||
"BackDevices_DBTools_DelEvents": "Události odstraněny",
|
||||
"BackDevices_DBTools_DelEventsError": "Chyba při odstraňování událostí",
|
||||
"BackDevices_DBTools_ImportCSV": "Zařízení z CSV souboru byla úspěšně importována.",
|
||||
"BackDevices_DBTools_ImportCSVError": "CSV soubor nemohl být importován. Ujistěte se, že je formát správný.",
|
||||
"BackDevices_DBTools_ImportCSVMissing": "CSV soubor <b>/config/devices.csv</b> nebyl nalezen.",
|
||||
"BackDevices_DBTools_Purge": "Nejstarší zálohy byly odstraněny",
|
||||
"BackDevices_DBTools_UpdDev": "Zařízení úspěšně aktualizováno. Hlavní seznam zařízení vyžaduje nějaký čas k obnovení, pokud probíhá scan.",
|
||||
"BackDevices_DBTools_UpdDevError": "Chyba aktualizace zařízení",
|
||||
"BackDevices_DBTools_Upgrade": "Databáze byla úspěšně upgradována",
|
||||
"BackDevices_DBTools_UpgradeError": "Chyba při upgradu databáze",
|
||||
"BackDevices_Device_UpdDevError": "Chyba při aktualizaci zařízení, zkuste to později. Databáze je pravděpodobně uzamčena z důvodu jiné probíhající úlohy.",
|
||||
"BackDevices_Restore_CopError": "Původní databázi se nepodařilo uložit.",
|
||||
"BackDevices_Restore_Failed": "Obnova selhala. Prosím, obnovte zálohu ručně.",
|
||||
"BackDevices_Restore_okay": "Obnova úspěšně provedena.",
|
||||
"BackDevices_darkmode_disabled": "Tmavý režim zakázán",
|
||||
"BackDevices_darkmode_enabled": "Tmavý režim povolen",
|
||||
"CLEAR_NEW_FLAG_description": "Pokud je povoleno (<code>0</code> je zakázáno), zařízením označeným jako <b>Nové Zařízení</b> bude tento příznak odebrán, pokud časový limit (udaný v hodinách) překročí jejich čas <b>První Session</b>.",
|
||||
"CLEAR_NEW_FLAG_name": "Odebrat příznak nového",
|
||||
"CustProps_cant_remove": "Nelze odebrat, je vyžadována alespoň jedna položka.",
|
||||
"DAYS_TO_KEEP_EVENTS_description": "Toto je nastavení údržby. Určuje počet dní, po které budou záznamy události uchovávány. Všechny starší události budou periodicky odstraněny. Platí také pro Historii Událostí Pluginů.",
|
||||
"DAYS_TO_KEEP_EVENTS_name": "Odstranit události starší než",
|
||||
"DEEP_SLEEP_description": "",
|
||||
"DEEP_SLEEP_name": "",
|
||||
"DISCOVER_PLUGINS_description": "",
|
||||
"DISCOVER_PLUGINS_name": "",
|
||||
"DevDetail_Children_Title": "",
|
||||
"DevDetail_Copy_Device_Title": "",
|
||||
"DevDetail_Copy_Device_Tooltip": "",
|
||||
"DevDetail_CustomProperties_Title": "",
|
||||
"DevDetail_CustomProps_reset_info": "",
|
||||
"DevDetail_DisplayFields_Title": "",
|
||||
"DevDetail_EveandAl_AlertAllEvents": "",
|
||||
"DevDetail_EveandAl_AlertDown": "",
|
||||
"DISCOVER_PLUGINS_description": "Zakažte tuto volbu pro urychlení inicializace a ukládání nastavení. Když je volba zakázána, pluginy nejsou vyhledávány a nemůžete tak přidávat nové pluginy do nastavení <code>LOADED_PLUGINS</code>.",
|
||||
"DISCOVER_PLUGINS_name": "Vyhledat pluginy",
|
||||
"DevDetail_Children_Title": "Podřízené vazby",
|
||||
"DevDetail_Copy_Device_Title": "Zkopírovat detaily ze zařízení",
|
||||
"DevDetail_Copy_Device_Tooltip": "Zkopírovat detaily z vybraného zařízení. Všechno na této stránce bude přepsáno",
|
||||
"DevDetail_CustomProperties_Title": "Vlastní položky",
|
||||
"DevDetail_CustomProps_reset_info": "Tímto budou odebrány vlastní položky na tomto zařízení a dojde k resetu na výchozí hodnotu.",
|
||||
"DevDetail_DisplayFields_Title": "Zobrazit",
|
||||
"DevDetail_EveandAl_AlertAllEvents": "Hlásit události",
|
||||
"DevDetail_EveandAl_AlertDown": "Hlásit down",
|
||||
"DevDetail_EveandAl_Archived": "Archivováno",
|
||||
"DevDetail_EveandAl_NewDevice": "",
|
||||
"DevDetail_EveandAl_NewDevice_Tooltip": "",
|
||||
"DevDetail_EveandAl_RandomMAC": "",
|
||||
"DevDetail_EveandAl_ScanCycle": "",
|
||||
"DevDetail_EveandAl_ScanCycle_a": "",
|
||||
"DevDetail_EveandAl_ScanCycle_z": "",
|
||||
"DevDetail_EveandAl_Skip": "",
|
||||
"DevDetail_EveandAl_Title": "",
|
||||
"DevDetail_Events_CheckBox": "",
|
||||
"DevDetail_GoToNetworkNode": "",
|
||||
"DevDetail_EveandAl_NewDevice": "Nové zařízení",
|
||||
"DevDetail_EveandAl_NewDevice_Tooltip": "Zobrazí status Nový pro nové zařízení a zahrne je do seznamu s filtrem Nová zařízení. Nemá vliv na notifikace.",
|
||||
"DevDetail_EveandAl_RandomMAC": "Náhodná MAC",
|
||||
"DevDetail_EveandAl_ScanCycle": "Skenovat zařízení",
|
||||
"DevDetail_EveandAl_ScanCycle_a": "Skenovat zařízení",
|
||||
"DevDetail_EveandAl_ScanCycle_z": "Neskenovat zařízení",
|
||||
"DevDetail_EveandAl_Skip": "Vynechat opakování notifikací během",
|
||||
"DevDetail_EveandAl_Title": "Konfigurace notifikací",
|
||||
"DevDetail_Events_CheckBox": "Skrýt události připojení",
|
||||
"DevDetail_GoToNetworkNode": "Navigovat na Síťovou stránku uvedeného node.",
|
||||
"DevDetail_Icon": "Ikona",
|
||||
"DevDetail_Icon_Descr": "",
|
||||
"DevDetail_Icon_Descr": "Zadejte název ikony z Font Awesome bez prefixu \"fa-\", nebo s celou class, např. \"fa-brands\", \"fa-apple\", ...",
|
||||
"DevDetail_Loading": "Načítání…",
|
||||
"DevDetail_MainInfo_Comments": "Komentáře",
|
||||
"DevDetail_MainInfo_Favorite": "",
|
||||
"DevDetail_MainInfo_Group": "",
|
||||
"DevDetail_MainInfo_Location": "",
|
||||
"DevDetail_MainInfo_Name": "",
|
||||
"DevDetail_MainInfo_Network": "",
|
||||
"DevDetail_MainInfo_Network_Port": "",
|
||||
"DevDetail_MainInfo_Network_Site": "",
|
||||
"DevDetail_MainInfo_Network_Title": "",
|
||||
"DevDetail_MainInfo_Owner": "",
|
||||
"DevDetail_MainInfo_SSID": "",
|
||||
"DevDetail_MainInfo_Title": "",
|
||||
"DevDetail_MainInfo_Type": "",
|
||||
"DevDetail_MainInfo_Vendor": "",
|
||||
"DevDetail_MainInfo_mac": "",
|
||||
"DevDetail_NavToChildNode": "",
|
||||
"DevDetail_Network_Node_hover": "",
|
||||
"DevDetail_Network_Port_hover": "",
|
||||
"DevDetail_Nmap_Scans": "",
|
||||
"DevDetail_Nmap_Scans_desc": "",
|
||||
"DevDetail_Nmap_buttonDefault": "",
|
||||
"DevDetail_Nmap_buttonDefault_text": "",
|
||||
"DevDetail_Nmap_buttonDetail": "",
|
||||
"DevDetail_Nmap_buttonDetail_text": "",
|
||||
"DevDetail_Nmap_buttonFast": "",
|
||||
"DevDetail_Nmap_buttonFast_text": "",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery": "",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "",
|
||||
"DevDetail_Nmap_resultsLink": "",
|
||||
"DevDetail_Owner_hover": "",
|
||||
"DevDetail_Periodselect_All": "",
|
||||
"DevDetail_Periodselect_LastMonth": "",
|
||||
"DevDetail_Periodselect_LastWeek": "",
|
||||
"DevDetail_Periodselect_LastYear": "",
|
||||
"DevDetail_Periodselect_today": "",
|
||||
"DevDetail_Run_Actions_Title": "",
|
||||
"DevDetail_Run_Actions_Tooltip": "",
|
||||
"DevDetail_SessionInfo_FirstSession": "",
|
||||
"DevDetail_SessionInfo_LastIP": "",
|
||||
"DevDetail_SessionInfo_LastSession": "",
|
||||
"DevDetail_SessionInfo_StaticIP": "",
|
||||
"DevDetail_SessionInfo_Status": "",
|
||||
"DevDetail_SessionInfo_Title": "",
|
||||
"DevDetail_SessionTable_Additionalinfo": "",
|
||||
"DevDetail_SessionTable_Connection": "",
|
||||
"DevDetail_SessionTable_Disconnection": "",
|
||||
"DevDetail_SessionTable_Duration": "",
|
||||
"DevDetail_SessionTable_IP": "",
|
||||
"DevDetail_SessionTable_Order": "",
|
||||
"DevDetail_Shortcut_CurrentStatus": "",
|
||||
"DevDetail_Shortcut_DownAlerts": "",
|
||||
"DevDetail_Shortcut_Presence": "",
|
||||
"DevDetail_Shortcut_Sessions": "",
|
||||
"DevDetail_Tab_Details": "",
|
||||
"DevDetail_Tab_Events": "",
|
||||
"DevDetail_Tab_EventsTableDate": "",
|
||||
"DevDetail_Tab_EventsTableEvent": "",
|
||||
"DevDetail_Tab_EventsTableIP": "",
|
||||
"DevDetail_Tab_EventsTableInfo": "",
|
||||
"DevDetail_Tab_Nmap": "",
|
||||
"DevDetail_Tab_NmapEmpty": "",
|
||||
"DevDetail_Tab_NmapTableExtra": "",
|
||||
"DevDetail_Tab_NmapTableHeader": "",
|
||||
"DevDetail_Tab_NmapTableIndex": "",
|
||||
"DevDetail_Tab_NmapTablePort": "",
|
||||
"DevDetail_Tab_NmapTableService": "",
|
||||
"DevDetail_Tab_NmapTableState": "",
|
||||
"DevDetail_Tab_NmapTableText": "",
|
||||
"DevDetail_Tab_NmapTableTime": "",
|
||||
"DevDetail_Tab_Plugins": "",
|
||||
"DevDetail_Tab_Presence": "",
|
||||
"DevDetail_Tab_Sessions": "",
|
||||
"DevDetail_Tab_Tools": "",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Description": "",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Error": "",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Start": "",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Title": "",
|
||||
"DevDetail_Tab_Tools_Nslookup_Description": "",
|
||||
"DevDetail_Tab_Tools_Nslookup_Error": "",
|
||||
"DevDetail_Tab_Tools_Nslookup_Start": "",
|
||||
"DevDetail_Tab_Tools_Nslookup_Title": "",
|
||||
"DevDetail_Tab_Tools_Speedtest_Description": "",
|
||||
"DevDetail_Tab_Tools_Speedtest_Start": "",
|
||||
"DevDetail_Tab_Tools_Speedtest_Title": "",
|
||||
"DevDetail_Tab_Tools_Traceroute_Description": "",
|
||||
"DevDetail_Tab_Tools_Traceroute_Error": "",
|
||||
"DevDetail_Tab_Tools_Traceroute_Start": "",
|
||||
"DevDetail_Tab_Tools_Traceroute_Title": "",
|
||||
"DevDetail_Tools_WOL": "",
|
||||
"DevDetail_Tools_WOL_noti": "",
|
||||
"DevDetail_Tools_WOL_noti_text": "",
|
||||
"DevDetail_Type_hover": "",
|
||||
"DevDetail_Vendor_hover": "",
|
||||
"DevDetail_WOL_Title": "",
|
||||
"DevDetail_button_AddIcon": "",
|
||||
"DevDetail_button_AddIcon_Help": "",
|
||||
"DevDetail_button_AddIcon_Tooltip": "",
|
||||
"DevDetail_button_Delete": "",
|
||||
"DevDetail_button_DeleteEvents": "",
|
||||
"DevDetail_button_DeleteEvents_Warning": "",
|
||||
"DevDetail_button_Delete_ask": "",
|
||||
"DevDetail_button_OverwriteIcons": "",
|
||||
"DevDetail_button_OverwriteIcons_Tooltip": "",
|
||||
"DevDetail_button_OverwriteIcons_Warning": "",
|
||||
"DevDetail_button_Reset": "",
|
||||
"DevDetail_button_Save": "",
|
||||
"DeviceEdit_ValidMacIp": "",
|
||||
"Device_MultiEdit": "",
|
||||
"Device_MultiEdit_Backup": "",
|
||||
"Device_MultiEdit_Fields": "",
|
||||
"Device_MultiEdit_MassActions": "",
|
||||
"Device_MultiEdit_No_Devices": "",
|
||||
"Device_MultiEdit_Tooltip": "",
|
||||
"Device_NextScan_Imminent": "",
|
||||
"Device_NextScan_In": "",
|
||||
"Device_NoData_Help": "",
|
||||
"DevDetail_MainInfo_Favorite": "Oblíbené",
|
||||
"DevDetail_MainInfo_Group": "Skupina",
|
||||
"DevDetail_MainInfo_Location": "Umístění",
|
||||
"DevDetail_MainInfo_Name": "Název",
|
||||
"DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> Node (MAC)",
|
||||
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Port",
|
||||
"DevDetail_MainInfo_Network_Site": "Site",
|
||||
"DevDetail_MainInfo_Network_Title": "Síťové detaily",
|
||||
"DevDetail_MainInfo_Owner": "Vlastník",
|
||||
"DevDetail_MainInfo_SSID": "SSID",
|
||||
"DevDetail_MainInfo_Title": "Informace o zařízení",
|
||||
"DevDetail_MainInfo_Type": "Typ",
|
||||
"DevDetail_MainInfo_Vendor": "Výrobce",
|
||||
"DevDetail_MainInfo_mac": "MAC",
|
||||
"DevDetail_NavToChildNode": "Otevřít podřízený node",
|
||||
"DevDetail_Network_Node_hover": "Vyberte nadřazené síťové zařízení, ke kterému je toto zařízení připojeno, pro sestavení Síťového stromu.",
|
||||
"DevDetail_Network_Port_hover": "Port nadřazeného síťového zařízení, ke kterému je toto zařízení připojeno. Pokud je ponechán prázdný, zobrazí se u zařízení WiFi ikona v Síťovém stromu.",
|
||||
"DevDetail_Nmap_Scans": "Manuální NMAP scany",
|
||||
"DevDetail_Nmap_Scans_desc": "Tady můžete spustit manuální NMAP scany. Můžete také naplánovat pravidelné automatické NMAP scany přes plugin Služby & Porty (NMAP). Podívejte se do <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Dokumentace</a> pro více informací",
|
||||
"DevDetail_Nmap_buttonDefault": "Výchozí scan",
|
||||
"DevDetail_Nmap_buttonDefault_text": "Výchozí scan: NAMP scanuje prvních 1000 portů pro každý požadovaný protokol. Toto zahrnuje 93 % TCP portů a 49 % UDP portů. (přibližně 5 sekund)",
|
||||
"DevDetail_Nmap_buttonDetail": "Podrobný scan",
|
||||
"DevDetail_Nmap_buttonDetail_text": "Podrobný scan: Výchozí scan s povolenou detekcí OS, detekcí verze, scanování skriptů a traceroute (až 30 sekund nebo déle)",
|
||||
"DevDetail_Nmap_buttonFast": "Rychlý scan",
|
||||
"DevDetail_Nmap_buttonFast_text": "Rychlý scan: Scanovat pár portů (100) oproti výchozímu scanu (pár sekund)",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery": "Přeskočit prohledání hostitele",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "Přeskočit vyhledávání hostitelů (parametr \"-Pn\"): Výchozí scan bez prohledání hostitele",
|
||||
"DevDetail_Nmap_resultsLink": "Tuto stránku můžete opustit po spuštění scanu. Výsledky budou k dispozici také v souboru <code>app_front.log</code> .",
|
||||
"DevDetail_Owner_hover": "Kdo vlastní toto zařízení. Nepovinná textová položka.",
|
||||
"DevDetail_Periodselect_All": "Všechny informace",
|
||||
"DevDetail_Periodselect_LastMonth": "Minulý měsíc",
|
||||
"DevDetail_Periodselect_LastWeek": "Minulý týden",
|
||||
"DevDetail_Periodselect_LastYear": "Minulý rok",
|
||||
"DevDetail_Periodselect_today": "Dnes",
|
||||
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Spustit akci na zařízení",
|
||||
"DevDetail_Run_Actions_Tooltip": "Spustit akci na vybraném zařízení.",
|
||||
"DevDetail_SessionInfo_FirstSession": "Prví sezení",
|
||||
"DevDetail_SessionInfo_LastIP": "Poslední IP",
|
||||
"DevDetail_SessionInfo_LastSession": "Naposledy offline",
|
||||
"DevDetail_SessionInfo_StaticIP": "Statická IP",
|
||||
"DevDetail_SessionInfo_Status": "Stav",
|
||||
"DevDetail_SessionInfo_Title": "Informace o sezení",
|
||||
"DevDetail_SessionTable_Additionalinfo": "Další informace",
|
||||
"DevDetail_SessionTable_Connection": "Připojení",
|
||||
"DevDetail_SessionTable_Disconnection": "Odpojení",
|
||||
"DevDetail_SessionTable_Duration": "Trvání",
|
||||
"DevDetail_SessionTable_IP": "IP",
|
||||
"DevDetail_SessionTable_Order": "Pořadí",
|
||||
"DevDetail_Shortcut_CurrentStatus": "Stav",
|
||||
"DevDetail_Shortcut_DownAlerts": "Down alerty",
|
||||
"DevDetail_Shortcut_Presence": "Výskyt",
|
||||
"DevDetail_Shortcut_Sessions": "Sezení",
|
||||
"DevDetail_Tab_Details": "Detaily",
|
||||
"DevDetail_Tab_Events": "Události",
|
||||
"DevDetail_Tab_EventsTableDate": "Datum",
|
||||
"DevDetail_Tab_EventsTableEvent": "Druh události",
|
||||
"DevDetail_Tab_EventsTableIP": "IP",
|
||||
"DevDetail_Tab_EventsTableInfo": "Další informace",
|
||||
"DevDetail_Tab_Nmap": "<i class=\"fa fa-ethernet\"></i> NMAP",
|
||||
"DevDetail_Tab_NmapEmpty": "Pomocí NMAP nebyly na tomto zařízení nalezeny žádné porty.",
|
||||
"DevDetail_Tab_NmapTableExtra": "Extra",
|
||||
"DevDetail_Tab_NmapTableHeader": "Výsledky naplánovaných scanů",
|
||||
"DevDetail_Tab_NmapTableIndex": "Index",
|
||||
"DevDetail_Tab_NmapTablePort": "Port",
|
||||
"DevDetail_Tab_NmapTableService": "Služba",
|
||||
"DevDetail_Tab_NmapTableState": "Stav",
|
||||
"DevDetail_Tab_NmapTableText": "Nastavte plán v <a href=\"/settings.php#NMAP_ACTIVE\">Nastavení</a>",
|
||||
"DevDetail_Tab_NmapTableTime": "Čas",
|
||||
"DevDetail_Tab_Plugins": "Pluginy",
|
||||
"DevDetail_Tab_Presence": "Výskyt",
|
||||
"DevDetail_Tab_Sessions": "Sezení",
|
||||
"DevDetail_Tab_Tools": "Nástroje",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Description": "Nástroj Internetové informace zobrazuje informace o internetovém připojení jako je IP adresa, město, stát, kód oblasti a časovou zónu.",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Error": "Vyskytla se chyba",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Start": "Spustit Internetové informace",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Title": "Internetové informace",
|
||||
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup je nástroj příkazové řádky používaný pro dotazování doménového jmenného systému (DNS). DNS je systém, který překládá doménové názvy, třeba www.google.com, na IP adresy, třeba na 172.217.0.142.",
|
||||
"DevDetail_Tab_Tools_Nslookup_Error": "Chyba: IP adresa není platná",
|
||||
"DevDetail_Tab_Tools_Nslookup_Start": "Spustit Nslookup",
|
||||
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
||||
"DevDetail_Tab_Tools_Speedtest_Description": "Nástroj Sppedtest měří rychlost stahování, rychlost nahrávání a latenci internetového připojení.",
|
||||
"DevDetail_Tab_Tools_Speedtest_Start": "Spustit Speedtest",
|
||||
"DevDetail_Tab_Tools_Speedtest_Title": "Online Speedtest",
|
||||
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute je sířový diagnostický příklad používaný pro trasování cesty, kterou datové packety putují od jednoho hostitele k druhému.<br><br>Příkaz používá Internet Control Message Protocol (ICMP) pro posílání packetů procházejícím nodů na cestě, kde každý takový node odpovídá pomocí ICMP time-out (TTL timed out) packetu.<br><br>Výstup traceroute příkazu může být použit pro diagnostiku síťových problémů, jako třeba prodlevy, packetové ztráty a blokované trasy.<br><br>Může být také použít k identifikaci umístění procházejícího node v síti.",
|
||||
"DevDetail_Tab_Tools_Traceroute_Error": "Chyba: IP adresa není platná",
|
||||
"DevDetail_Tab_Tools_Traceroute_Start": "Spustit Traceroute",
|
||||
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
||||
"DevDetail_Tools_WOL": "Odeslat WOL příkaz na ",
|
||||
"DevDetail_Tools_WOL_noti": "Wake-On-LAN",
|
||||
"DevDetail_Tools_WOL_noti_text": "Příkaz Wake-On-LAN je odelsán na broadcastovou adresu. Pokud není cíl ve stejném subnetu/VLAN jako NetAlertX, cílové zařízení neodpoví.",
|
||||
"DevDetail_Type_hover": "Typ zařízení. Pokud vyberete jakýkoliv typ předdefinovaných zařízení (např. AP, Firewall, Router, Switch, ...), zobrazí se v Síťovém stromu jako nadřazený síťový nod.",
|
||||
"DevDetail_Vendor_hover": "Výrobce by měl být auto-detekován. Můžete ho přepsat, nebo přidat vlastní hodnotu.",
|
||||
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-On-LAN",
|
||||
"DevDetail_button_AddIcon": "Přidat novou ikonu",
|
||||
"DevDetail_button_AddIcon_Help": "Vložte SVG HTML tag, nebo HTML tag ikony z Font Awesome. Přečtěte si <a href=\"https://docs.netalertx.com/ICONS\" target=\"_blank\">Dokumentaci k ikonám</a> pro více informací.",
|
||||
"DevDetail_button_AddIcon_Tooltip": "Přidat novou ikonu k tomuto zařízení, která není mezi dostupnými ikonami ve výběru.",
|
||||
"DevDetail_button_Delete": "Odstranit zařízení",
|
||||
"DevDetail_button_DeleteEvents": "Odstranit události",
|
||||
"DevDetail_button_DeleteEvents_Warning": "Opravdu chcete odstranit všechny události tohoto zařízení?<br><br>(toto odstraní všechno ze záložky <b>Historie událostí</b> a také ze záložky <b>Sezení</b> a může pomoci se stálými (trvalými) notifikacemi)",
|
||||
"DevDetail_button_Delete_ask": "Opravdu chcete odstranit toto zařízení? Místo toho ho můžete archivovat.",
|
||||
"DevDetail_button_OverwriteIcons": "Přepsat ikony",
|
||||
"DevDetail_button_OverwriteIcons_Tooltip": "Přepsat ikony všech zařízení stejného typu zařízení",
|
||||
"DevDetail_button_OverwriteIcons_Warning": "Opravdu chcete přepsat všechny ikony zařízení se stejným typem zařízení ikonou tohoto zařízení?",
|
||||
"DevDetail_button_Reset": "Resetovat změny",
|
||||
"DevDetail_button_Save": "Uložit",
|
||||
"DeviceEdit_ValidMacIp": "Zadejte platnou <b>MAC</b> a <b>IP</b> adresu.",
|
||||
"Device_MultiEdit": "Multi-editace",
|
||||
"Device_MultiEdit_Backup": "Opatrně, zadání nesprávných hodnot níže poškodí vaše nastavení. Zálohujte si prosím nejdřív vaši databázi nebo Seznam zařízení (<a href=\"#\" onclick=\"ExportCSV()\">kliknutím stáhnout <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Přečtěte si, jak obnovit Zařízení z tohoto souboru v <a href=\"https://docs.netalertx.com/BACKUPS#scenario-2-corrupted-database\" target=\"_blank\">Dokumentaci zálohování</a>. Pro pokračování uložení změn kliknéte na ikonu <b>Uložit<i class=\"fa-solid fa-save\"></i></b> u každé položky, kterou chcete aktualizovat.",
|
||||
"Device_MultiEdit_Fields": "Upravit položky:",
|
||||
"Device_MultiEdit_MassActions": "Hromadné akce:",
|
||||
"Device_MultiEdit_No_Devices": "Zařízení nevybráno.",
|
||||
"Device_MultiEdit_Tooltip": "Opatrně. Kliknutím na toto se použije hodnota vlevo všem zařízení dole.",
|
||||
"Device_NextScan_Imminent": "Bezprostřední...",
|
||||
"Device_NextScan_In": "Další scan za ",
|
||||
"Device_NoData_Help": "Pokud se zařízení po skenování nezobrazí, zkontrolujte nastavení SCAN_SUBNETS a <a href=\"https://docs.netalertx.com/SUBNETS\" target=\"_blank\">dokumentaci</a>.",
|
||||
"Device_NoData_Scanning": "",
|
||||
"Device_NoData_Title": "",
|
||||
"Device_NoMatch_Title": "",
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
"DevDetail_Nmap_buttonFast": "Scan rapide",
|
||||
"DevDetail_Nmap_buttonFast_text": "Scan rapide : analyse moins de ports (100) que le scan par défaut (plusieurs secondes)",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery": "Passer la découverte d'hôtes",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "Passer la découverte d'hôtes (option -PN) : scan par défaut sans découvert d'hôtes",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "Ignorer la découverte d'hôtes (option -PN) : scan par défaut sans découverte d'hôtes",
|
||||
"DevDetail_Nmap_resultsLink": "Vous pouvez quitter cette page après lancement du scan. Les resultats seront aussi disponibles dans le fichier <code>app_front.log</code>.",
|
||||
"DevDetail_Owner_hover": "Possesseur de l'appareil. Texte libre.",
|
||||
"DevDetail_Periodselect_All": "Toutes les infos",
|
||||
@@ -234,7 +234,7 @@
|
||||
"Device_TableHead_FQDN": "Nom de domaine FQDN",
|
||||
"Device_TableHead_Favorite": "Favori",
|
||||
"Device_TableHead_FirstSession": "Première session",
|
||||
"Device_TableHead_Flapping": "Flapping",
|
||||
"Device_TableHead_Flapping": "Bagotage",
|
||||
"Device_TableHead_GUID": "GUID",
|
||||
"Device_TableHead_Group": "Groupe",
|
||||
"Device_TableHead_IPv4": "IPv4",
|
||||
@@ -249,8 +249,8 @@
|
||||
"Device_TableHead_Name": "Nom",
|
||||
"Device_TableHead_NetworkSite": "Site Réseau",
|
||||
"Device_TableHead_Owner": "Propriétaire",
|
||||
"Device_TableHead_ParentRelType": "Type de relation",
|
||||
"Device_TableHead_Parent_MAC": "Nœud réseau principal",
|
||||
"Device_TableHead_ParentRelType": "Relation",
|
||||
"Device_TableHead_Parent_MAC": "Nœud principal",
|
||||
"Device_TableHead_Port": "Port",
|
||||
"Device_TableHead_PresentLastScan": "Présence",
|
||||
"Device_TableHead_ReqNicsOnline": "Nécessite que l'interface réseau (NIC) soit connectée",
|
||||
@@ -339,7 +339,7 @@
|
||||
"Gen_Down": "En panne",
|
||||
"Gen_Error": "Erreur",
|
||||
"Gen_Filter": "Filtrer",
|
||||
"Gen_Flapping": "Flapping",
|
||||
"Gen_Flapping": "Bagotage",
|
||||
"Gen_Generate": "Générer",
|
||||
"Gen_InvalidMac": "Adresse MAC invalide.",
|
||||
"Gen_Invalid_Value": "Une valeur invalide a été renseignée",
|
||||
@@ -478,7 +478,7 @@
|
||||
"Maintenance_Tool_del_unknowndev_noti_text": "Êtes-vous sûr de vouloir supprimer tous les appareils inconnus et sans nom trouvé ?",
|
||||
"Maintenance_Tool_del_unknowndev_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils nommés (inconnus) seront supprimés de la base de données.",
|
||||
"Maintenance_Tool_del_unlockFields_selecteddev_text": "Cela va déverrouiller les champs verrouillés par l'utilisateur (LOCKED/USER) des appareils sélectionnés. Cette action ne peut pas être annulée.",
|
||||
"Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>appareils</b></a> page.",
|
||||
"Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>Appareils</b></a>.",
|
||||
"Maintenance_Tool_drag_me": "Déplacez-moi pour réordonner les colonnes.",
|
||||
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
|
||||
"Maintenance_Tool_purgebackup": "Supprimer les sauvegardes",
|
||||
@@ -571,7 +571,7 @@
|
||||
"Network_ManageEdit_Type_text": "-- Sélectionner le type --",
|
||||
"Network_ManageLeaf": "Gérer l'assignation",
|
||||
"Network_ManageUnassign": "Désassigner",
|
||||
"Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet <b><i class=\"fa fa-info-circle\"></i> Détails</b> d'un appareil depuis le menu <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Appareils</b></a>, et assigner cet équipement à un <b><i class=\"fa fa-server\"></i> Nœud (MAC)</b> réseau et à un <b><i class=\"fa fa-ethernet\"></i>Port</b>.",
|
||||
"Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet <b><i class=\"fa fa-info-circle\"></i>Détails</b> d'un appareil depuis le menu <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>Appareils</b></a>, et assigner cet équipement à un <b><i class=\"fa fa-server\"></i>Nœud (MAC)</b> réseau et à un <b><i class=\"fa fa-ethernet\"></i>Port</b>.",
|
||||
"Network_NoDevices": "Pas d'appareil à configurer",
|
||||
"Network_Node": "Nœud réseau",
|
||||
"Network_Node_Name": "Nom du nœud",
|
||||
|
||||
@@ -19,6 +19,7 @@ __author__ = "xfilo"
|
||||
__version__ = 0.1 # Initial version
|
||||
__version__ = 0.2 # Rephrased error messages, improved logging and code logic
|
||||
__version__ = 0.3 # Refactored data collection into a class, improved code clarity with comments
|
||||
__version__ = 0.4 # Fix for https://github.com/netalertx/NetAlertX/issues/1595 - Omada Controller versions >= 6.2.0.0 removed the v1 clients endpoint
|
||||
|
||||
import os
|
||||
import sys
|
||||
@@ -26,9 +27,11 @@ import urllib3
|
||||
import requests
|
||||
import time
|
||||
import pytz
|
||||
import operator
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Literal, Any, Dict
|
||||
from packaging.version import Version, InvalidVersion
|
||||
|
||||
# Define the installation path and extend the system path for plugin imports
|
||||
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
|
||||
@@ -220,6 +223,40 @@ class OmadaHelper:
|
||||
msg = f"Failed normalizing {input_type}(s) from site '{site_name}' - error: {str(ex)}"
|
||||
OmadaHelper.verbose(msg)
|
||||
return OmadaHelper.response("error", msg)
|
||||
|
||||
@staticmethod
|
||||
def version_check(version, base: str, op: str = ">=") -> bool:
|
||||
"""
|
||||
Compare versions using PEP 440 semantics.
|
||||
Supports int and str inputs.
|
||||
"""
|
||||
ops = {
|
||||
"==": operator.eq,
|
||||
"!=": operator.ne,
|
||||
">": operator.gt,
|
||||
">=": operator.ge,
|
||||
"<": operator.lt,
|
||||
"<=": operator.le,
|
||||
}
|
||||
|
||||
if op not in ops:
|
||||
raise ValueError("Unsupported operator")
|
||||
|
||||
def to_version(v):
|
||||
if isinstance(v, int):
|
||||
return Version(str(v))
|
||||
if isinstance(v, str):
|
||||
try:
|
||||
return Version(v)
|
||||
except InvalidVersion:
|
||||
# fallback: treat invalid versions as 0
|
||||
return Version("0")
|
||||
raise TypeError("version/base must be int or str")
|
||||
|
||||
v = to_version(version)
|
||||
b = to_version(base)
|
||||
|
||||
return ops[op](v, b)
|
||||
|
||||
|
||||
class OmadaAPI:
|
||||
@@ -259,6 +296,7 @@ class OmadaAPI:
|
||||
self.active_sites_dict = {}
|
||||
self.access_token = None
|
||||
self.refresh_token = None
|
||||
self.controller_version = None
|
||||
|
||||
OmadaHelper.verbose("OmadaAPI initialized")
|
||||
|
||||
@@ -328,11 +366,57 @@ class OmadaAPI:
|
||||
OmadaHelper.debug(f"Authentication response: {response}")
|
||||
return OmadaHelper.response("error", f"Authentication failed - error: {response.get('response_message', 'Not provided')}")
|
||||
|
||||
def get_controller_status(self) -> Dict[str, Any]:
|
||||
"""Make an endpoint request to get controller status."""
|
||||
OmadaHelper.verbose(f"Retrieving controller status for CID: {getattr(self, 'omada_id')}")
|
||||
endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/system/setting/controller-status"
|
||||
response = self._make_request("GET", endpoint)
|
||||
|
||||
if response.get("response_type") == "success":
|
||||
response_result = response.get("response_result") or {}
|
||||
result = response_result.get("result") or {}
|
||||
self.controller_version = result.get("controllerVersion")
|
||||
if not self.controller_version:
|
||||
self.controller_version = None
|
||||
OmadaHelper.debug(f"Controller status: {response}")
|
||||
return OmadaHelper.response("error", "Controller status response did not include controllerVersion")
|
||||
else:
|
||||
return OmadaHelper.response("success", "Successfully retrieved controller status")
|
||||
|
||||
OmadaHelper.debug(f"Controller status: {response}")
|
||||
return OmadaHelper.response("error", "Failed to call controller status endpoint")
|
||||
|
||||
def get_clients(self, site_id: str) -> Dict[str, Any]:
|
||||
"""Make an endpoint request to get all online clients on a site."""
|
||||
OmadaHelper.verbose(f"Retrieving clients for site: {site_id}")
|
||||
endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/sites/{site_id}/clients?page=1&pageSize={getattr(self, 'page_size')}"
|
||||
return self._make_request("GET", endpoint)
|
||||
|
||||
page_size = getattr(self, 'page_size')
|
||||
omada_id = getattr(self, 'omada_id')
|
||||
|
||||
def call_v2():
|
||||
endpoint = f"/openapi/v2/{omada_id}/sites/{site_id}/clients"
|
||||
payload = {
|
||||
"page": 1,
|
||||
"pageSize": page_size,
|
||||
"scope": 1
|
||||
}
|
||||
return self._make_request("POST", endpoint, json=payload)
|
||||
|
||||
def call_v1():
|
||||
endpoint = f"/openapi/v1/{omada_id}/sites/{site_id}/clients?page=1&pageSize={page_size}"
|
||||
return self._make_request("GET", endpoint)
|
||||
|
||||
if self.controller_version is None:
|
||||
OmadaHelper.verbose("Controller version unknown, trying v2 then v1")
|
||||
resp = call_v2()
|
||||
if resp and resp.get("response_type") == "success":
|
||||
return resp
|
||||
return call_v1()
|
||||
|
||||
if OmadaHelper.version_check(self.controller_version, "6.2.0.0", ">="):
|
||||
return call_v2()
|
||||
|
||||
return call_v1()
|
||||
|
||||
def get_devices(self, site_id: str) -> Dict[str, Any]:
|
||||
"""Make an endpoint request to get all online devices on a site."""
|
||||
@@ -454,6 +538,13 @@ class OmadaData:
|
||||
OmadaHelper.minimal("Authentication failed, aborting data collection")
|
||||
OmadaHelper.debug(f"{auth_result['response_message']}")
|
||||
return plugin_objects
|
||||
|
||||
# Controller status
|
||||
status_result = omada_api.get_controller_status()
|
||||
if status_result["response_type"] == "error":
|
||||
OmadaHelper.verbose(f"Controller version lookup failed: {status_result['response_message']}")
|
||||
else:
|
||||
OmadaHelper.verbose(f"Controller version: {omada_api.controller_version}")
|
||||
|
||||
# Populate sites
|
||||
sites_result = omada_api.populate_sites()
|
||||
|
||||
Reference in New Issue
Block a user