Pull to refresh

Comments 10

Я не настоящий сварщик, но почему не /etc/os-release ?

Или вообще hostnamectl --json, если systemd.

Спасибо!
Но наверное это не так безопасно, чем прочитать файл os-release. тем более что и /etc/os-release и hostnamectl это всемогущий systemd.

В любом случае это не настолько страшно, как то, что происходит в коде статьи =)

Я тоже поразился!
Даже поиском по статье прошелся - думал пропустил.
Вы - сварщик реальный! А вот автор статьи

Я потратил большое кол-во времени, делая то, что придет в голову, не имея при этом никакой четкой структуры мысли

честно признается.

Я спросил у ясеня Алисы, вот что она ответила:

  1. hostnamectl

  2. cat /etc/*-release

  3. 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%?

Sign up to leave a comment.

Articles