Zurück zu Bouraq

Echte optische Übertragung · ohne Konto

Übertragen Sie diese Python-Datei vom Bildschirm aufs Handy.

Ein isolierter Prüfstand reagiert nicht mehr. Dieses Python-Skript erstellt aus seinen Protokollen einen Vorfallsbericht mit Zeitleiste, Anomalieerkennung und maskierten Kennungen. Scannen Sie 18 QR-Codes auf drei Seiten mit je sechs Codes, um die geprüfte Quelldatei mit 41.2 KB zu empfangen.

Auf welchem Gerät testen Sie?

Sie brauchen einen Computerbildschirm und ein Handy. Kein Konto, keine Installation.

  1. Scanner auf dem Handy öffnen

    Scannen Sie diesen Link-QR-Code mit der normalen Handy-Kamera und öffnen Sie den Link.

  2. Handy-Kamera erlauben

    Tippen Sie am Handy auf Kamera starten und erlauben Sie den Zugriff. Lassen Sie diese Seite am Computer geöffnet.

  3. Die drei QR-Seiten abspielen

    Starten Sie die Übertragung am Computer und richten Sie Ihr Handy auf alle sechs Codes. Die drei Seiten wiederholen sich; jeder Code muss nur einmal gelesen werden.

Die Originaldatei
PYairgap_incident_report.py41,231 B
#!/usr/bin/env python3
"""The isolated test bench stopped at 02:17. Your colleague needs the evidence.

AIR-GAP INCIDENT REPORT: turn local logs into a brief you can carry through QR.
A useful example for OT engineers, lab teams and developers on restricted PCs.
No USB, network connection, package installation or equipment access required.

Try the SYNTHETIC acceptance-bench incident (no real plant or customer data):
    python airgap_incident_report.py --demo --output bench-brief
    # Open bench-brief/report.html locally. No web server is needed.
    # A crash, repeated PLC reconnects and rising temperature become a timeline.

For approved exports:
    python airgap_incident_report.py --input controller.csv \
        --input service.jsonl --output incident-brief

Required fields: timestamp, asset, event. Use --schema for supported values.
Timestamps require Z or an explicit UTC offset. Input: UTF-8 CSV or JSONL.
Output: escaped HTML, JSON summary, source and handoff SHA-256 manifests.
Identifiers are pseudonymised by default. Review free text before sharing;
redaction cannot recognise every secret. --keep-identifiers is local-use only.
Correlation is not causation. This is triage, not safety approval or control.
Python 3.10+; standard library only. The web demo transfers, never runs, this file.
"""
from __future__ import annotations

import argparse
import csv
import hashlib
import io
import ipaddress
import json
import math
import re
import statistics
import sys
from collections import Counter, defaultdict
from dataclasses import dataclass, field
from datetime import datetime, timedelta, timezone
from html import escape
Vorschau · erste 40 Zeilen
Die laufende QR-Übertragung
18 QR · 3 × 6
Seite 1 / 3Bereit zum Senden. Starten Sie die Wiedergabe und scannen Sie mit Ihrem Handy.
Drei Seiten. Sechs QR-Codes pro Seite.

Bereiten Sie oben Ihr Handy vor und starten Sie dann die Übertragung.

Drei Seiten mit je sechs QR-Codes wiederholen sich bis zur Pause. Starten Sie mit 6 Sekunden pro Seite oder wählen Sie 2,5 oder 4 Sekunden, wenn Ihre Kamera mithält. Eine verpasste Seite erscheint im nächsten Durchlauf erneut.

Nur ein öffentliches Beispiel (41231 Bytes). Kamerabilder und Dateirekonstruktion bleiben in Ihrem Browser. Der Python-Quellcode wird angezeigt und heruntergeladen, niemals ausgeführt. Für eigene Dateien ist ein Bouraq-Konto erforderlich.