Comments 10
Я не настоящий сварщик, но почему не /etc/os-release ?
Или вообще hostnamectl --json, если systemd.
Я тоже поразился!
Даже поиском по статье прошелся - думал пропустил.
Вы - сварщик реальный! А вот автор статьи
Я потратил большое кол-во времени, делая то, что придет в голову, не имея при этом никакой четкой структуры мысли
честно признается.
Я спросил у ясеня Алисы, вот что она ответила:
hostnamectl
cat /etc/*-release
lsb_release -a
Автору надо серьёзно с ней поговорить, почему она от него такое скрывает.
scores = {distro: 0 for distro in DISTRO_RULES}
scores = dict.from_keys(DISTRO_RULES, 0)Наконец-то время этой функции настало!
Хотя мне больше нравится defaultdict:
from collections import defaultdict
scores = defaultdict(int)
nmap -SV -O -script discovery 192.168.1.0/24
замените на свою подсеть.
все комментаторы брызжут ядом, пропустив изначальную постановку задачи: автору нужно было определять версию ОС исключительно по данным, которые предоставляет развёрнутый у них SIEM. без доступа к хостам по ssh, без сетевого доступа для nmap.
в код не вчитывался (тем более автор явно не python-разработчик), но само решение для этих вводных - довольно элегантное
import platform as p
def get_os() -> dict:
return {"name": p.system(), "version": p.version()}Мужик, ну какие балы? Какие 95%-99%?
Как я определял дистрибутивы Linux по установленным пакетам, и при чем тут KUMA?