Категории

Язык

26 июля 2018 г. 21:01 (ред. 27 июля 2018 г. 9:44)
Из VIN можно получить интересную информацию. Давайте разберёмся, как это сделать.
На днях я заинтересовался вопросом о том, какая информация зашита в VIN (идентификационный номер транспортного средства).

Выяснилось, что производитель может зашифровать в него практически любую информацию, однако существуют и базовые параметры, поддерживающиеся большинством.

Для удобного получения данных по номеру, а также проверки его валидности (которую, опять же, поддерживают не все производители) как из командной строки, так и из приложений, написанных на Python, я накидал утилиту под названием vininfo.

Пример получения информации по номеру из интерфейса командной строки:

https://a.radikal.ru/a35/1807/75/42ea9faee9f8.png

А теперь пример использования утилиты в вашем приложении:

    from vininfo import Vin

vin = Vin('VF1LM1B0H36666155')

vin.country # France
vin.manufacturer # Renault
vin.region # Europe
vin.vis # 36666155

annotated = vin.annotate()
details = vin.details

vin.verify_checksum() # False
Vin('1M8GDM9AXKP042788').verify_checksum() # True

Базовые данные уже сейчас можно извлекать из довольно большого количества номеров.
А вот детальная информация на данный момент доступна только для свежих линеек от АвтоВАЗ.

Желающие могут добавить извлекатели для других производителей — vininfo разрабатывается открыто.
Репозиторий: https://github.com/idlesign/vininfo
Там же инструкция по установке и краткое описание (англ.).

Приятного извлечения.