Эквивалентная библиотека/модуль Python для node-machine-id?

Я ищу эквивалентную библиотеку/модуль python для node-machine-id

Я хочу однозначно идентифицировать каждый рабочий стол/устройство, получить этот UUID и отправить в БД. Я могу добиться этой конкретной вещи в javascript с кодом ниже

      import pkg from 'node-machine-id';
const {machineIdSync} = pkg;
let id = machineIdSync();
console.log(id)

или же

      let ida = machineIdSync({original: true})
console.log(ida)

Я знаю, что python имеет встроенный модуль uuid, но этот идентификатор является переменным, мне нужен только уникальный идентификатор компьютера, как я смог сделать с идентификатором узла-машины. Спасибо!

1 ответ

Я написал небольшой кроссплатформенный пакет PyPI, который запрашивает собственный GUID машины, который называется machineid. Это очень похоже наnode-machine-idПакет узла.

По сути, это выглядит как взрыв кода, но с некоторыми специфичными для Windows запросами реестра WMI для еще более точного идентификатора на компьютерах с Windows.

В пакете также есть поддержка анонимизации идентификатора с помощью хеширования.

      import subprocess
import sys

def run(cmd):
  try:
    return subprocess.run(cmd, shell=True, capture_output=True, check=True, encoding="utf-8") \
                     .stdout \
                     .strip()
  except:
    return None

def guid():
  if sys.platform == 'darwin':
    return run(
      "ioreg -d2 -c IOPlatformExpertDevice | awk -F\\\" '/IOPlatformUUID/{print $(NF-1)}'",
    )

  if sys.platform == 'win32' or sys.platform == 'cygwin' or sys.platform == 'msys':
    return run('wmic csproduct get uuid').split('\n')[2] \
                                         .strip()

  if sys.platform.startswith('linux'):
    return run('cat /var/lib/dbus/machine-id') or \
           run('cat /etc/machine-id')

  if sys.platform.startswith('openbsd') or sys.platform.startswith('freebsd'):
    return run('cat /etc/hostid') or \
           run('kenv -q smbios.system.uuid')

Открыты для обратной связи и PR!

Другие вопросы по тегам