Как получить hwid в Python?
Попробовал получить этим способом, но в переменную hwid не записывается, а просто выводится в консоль при исполнении функции, к тому же нужно таскать exe приложение. Есть ещё какой-нибудь способ получения hwid в питоне?
Ответы (2 шт):
Автор решения: Insider
→ Ссылка
Ответ взят отсюда https://stackoverflow.com/a/4194146/3848611
Для Linux:
import sys, os, fcntl, struct
if os.geteuid() > 0:
print("ERROR: Must be root to use")
sys.exit(1)
with open(sys.argv[1], "rb") as fd:
# tediously derived from the monster struct defined in <hdreg.h>
# see comment at end of file to verify
hd_driveid_format_str = "@ 10H 20s 3H 8s 40s 2B H 2B H 4B 6H 2B I 36H I Q 152H"
# Also from <hdreg.h>
HDIO_GET_IDENTITY = 0x030d
# How big a buffer do we need?
sizeof_hd_driveid = struct.calcsize(hd_driveid_format_str)
# ensure our format string is the correct size
# 512 is extracted using sizeof(struct hd_id) in the c code
assert sizeof_hd_driveid == 512
# Call native function
buf = fcntl.ioctl(fd, HDIO_GET_IDENTITY, " " * sizeof_hd_driveid)
fields = struct.unpack(hd_driveid_format_str, buf)
serial_no = fields[10].strip()
model = fields[15].strip()
print("Hard Disk Model: %s" % model)
print(" Serial Number: %s" % serial_no)
для Windows:
import wmi
c = wmi.WMI()
for item in c.Win32_PhysicalMedia():
print item
Либо:
import win32api
print win32api.GetVolumeInformation("C:\\")
http://python.net/crew/mhammond/
Если Вам будет нужна еще какая-либо информация - https://www.thepythoncode.com/article/get-hardware-system-information-python
Автор решения: Jairman
→ Ссылка
Я немного идиот и неправильно задал вопрос, оказывается хотел я не номер жёсткого диска, но в итоге нашёл, что нужно.
from wmi import WMI
a = WMI().Win32_ComputerSystemProduct()[0].UUID
print(a)