import re
import subprocess

def get_cpu_serial():
    # Получаем серийный номер процессора Orange Pi
    try:
        output = subprocess.check_output("cat /proc/cpuinfo", shell=True).decode()
        serial_match = re.search(r"Serial\s+:\s+(\w+)", output)
        if serial_match:
            return serial_match.group(1)
    except Exception as e:
        print(f"Ошибка при получении серийного номера процессора: {e}")
    return None

def generate_mac_address(serial):
    # Генерируем MAC-адрес на основе серийного номера
    if serial:
        # Преобразуем серийный номер в часть MAC-адреса
        serial = serial[-6:]
        # Добавляем префикс, чтобы получить уникальный MAC-адрес
        mac_address = f"00:1E:06:{serial[0:2]}:{serial[2:4]}:{serial[4:6]}"
        return mac_address
    return None

if __name__ == "__main__":
    # Получите серийный номер процессора
    cpu_serial = get_cpu_serial()

    if cpu_serial:
        # Генерируйте MAC-адрес на основе серийного номера
        new_mac_address = generate_mac_address(cpu_serial)

        if new_mac_address:
            print(new_mac_address)
        else:
            print("Не удалось сгенерировать MAC-адрес.")
    else:
        print("Не удалось получить серийный номер процессора.")
