Сообщить об ошибке.

Функциb uuid1() модуля uuid в Python

Создание UUID для хоста по его MAC-адресу

Синтаксис:

import uuid

uuid.uuid1(node=None, clock_seq=None)

Параметры:

  • node=None - аппаратный адрес хоста,
  • clock_seq=None - порядкового номера текущего времени.

Возвращаемое значение:

Описание:

Функция uuid1() модуля uuid создает UUID из идентификатора хоста node и порядкового номера текущего времени clock_seq. Функция возвращает объект UUID.

Для преобразования объекта UUID в строку используйте встроенную функцию str().

  • Если узел node не указан, то используется функция uuid.getnode() для получения аппаратного адреса.
  • Если указано clock_seq, оно используется в качестве порядкового номера. В противном случае выбирается случайный 14-битный порядковый номер.

Примеры использования:

Из-за компонента времени каждый вызов uuid.uuid1() возвращает новое значение. В выходных данных изменяется только компонент времени в начале строки до первого дефиса.

>>> import uuid
>>> for i in range(3):
...     print(uuid.uuid1())
... 
# 699d54ae-8b6f-11ea-8f75-f4939ff850e4
# 699d54af-8b6f-11ea-8f75-f4939ff850e4
# 699d54b0-8b6f-11ea-8f75-f4939ff850e4

Поскольку у каждого компьютера свой MAC-адрес, выполнение uuid.uuid1() в разных системах приведет к совершенно разным значениям.

В следующем примере передаются явные идентификаторы узлов для имитации работы на разных хостах.

>>> import uuid
>>> for node in [0x1ec200d9e0, 0x1e5274040e]:
...     print(uuid.uuid1(node))
... 
# f5db131a-8b6f-11ea-abe8-001ec200d9e0
# f5db15b8-8b6f-11ea-8001-001e5274040e

К компонентам возвращенного объекта UUID можно получить доступ через атрибуты экземпляра, они доступны только для чтения. Некоторые атрибуты, такие как hex, int и urn, являются различными представлениями значения UUID.

>>> import uuid
>>> uid = uuid.uuid1()
>>> uid
UUID('20aa1168-8b7b-11ea-8f75-f4939ff850e4')
#  Преобразование объекта `UUID` в строку
>>> str(uid)
# '20aa1168-8b7b-11ea-8f75-f4939ff850e4'
>>> uid.bytes
# b' \xaa\x11h\x8bq\x11\xea\x8fu\xf4\x93\x9f\xf8P\xe4'
>>> uid.hex
# '20aa11688b7111ea8f75f4939ff850e4'
>>> uid.int
# 43418339414915501781549504252851278052
>>> uid.urn
# 'urn:uuid:20aa1168-8b71-11ea-8f75-f4939ff850e4'
>>> uid.variant
# 'specified in RFC 4122'
>>> uid.version
# 1
>>> uid.fields
# (548016488, 35697, 4586, 143, 117, 268914881220836)
>>> uid.time_low
# 548016488
>>> uid.time_mid
# 35697
>>> uid.time_hi_version
# 4586
>>> uid.clock_seq_hi_variant
# 143
>>> uid.clock_seq_low
# 117
>>> uid.time
# 138076056583803240
>>> uid.clock_seq
# 3957