
BLE-basiertes HTTP-Proxy-System, das den Browserverkehr über ein iOS-Gerät leitet. Unterstützt HTTP/HTTPS, Datenkompression und einen Mock-Modus zum Testen ohne Hardware.
Ein Bluetooth Low Energy (BLE) basiertes HTTP-Proxy-System, das den Web-Browser-Verkehr über ein iOS-Gerät leitet. Dies ermöglicht das Surfen im Internet über die Internetverbindung des iOS-Geräts unter Verwendung von BLE als Transportschicht.
Browser → Windows Proxy → BLE/TCP → iOS/Mock Service → WiFi → Internet
← Windows Proxy ← BLE/TCP ← iOS/Mock Service ← WiFi ←
windows-proxy/)127.0.0.1:8080 (Standard)mock-ios-service/)127.0.0.1:9999 (Standard)Terminal 1 – Mock iOS Service starten:
cd mock-ios-service
npm install
npm start
Terminal 2 – Windows Proxy im Mock-Modus starten:
cd windows-proxy
npm install
npm run mock
Browser konfigurieren:
127.0.0.1:8080 setzenTerminal 1 – Windows Proxy starten:
cd windows-proxy
npm install
npm start
iOS-Gerät:
Browser konfigurieren:
127.0.0.1:8080 setzenAlle Daten werden in komprimiertem, chunked-Format übertragen:
[4-Byte-Längen-Header][komprimiertes JSON-Payload]
// Anfrage
{
id: "uuid", // Eindeutige Anfrage-ID
method: "GET", // HTTP-Methode
url: "https://...", // Ziel-URL
headers: {}, // HTTP-Header
body: "base64...", // Anfragekörper (base64)
isConnect: false // HTTPS CONNECT-Flag
}
// Antwort
{
id: "uuid", // Passende Anfrage-ID
statusCode: 200, // HTTP-Status
headers: {}, // Antwort-Header
body: "base64...", // Antwortkörper (base64)
success: true // Für CONNECT-Anfragen
}
// windows-proxy/config.js
{
proxy: {
host: "127.0.0.1",
port: 8080,
timeout: 30000
},
ble: {
serviceUUID: "a1b2c3d4-...",
// ... other UUIDs
}
}
# Mock-Modus
MOCK_MODE=true
# Proxy-Einstellungen
PROXY_HOST=127.0.0.1
PROXY_PORT=8080
# BLE UUIDs
BLE_SERVICE_UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef
# Mock-Service
MOCK_SERVICE_HOST=127.0.0.1
MOCK_SERVICE_PORT=9999
127.0.0.1:8080127.0.0.1:8080localhost, 127.0.0.1127.0.0.1 Port: 8080127.0.0.1 Port: 8080ble_proxy/
├── windows-proxy/ # Windows BLE Central + HTTP Proxy
│ ├── proxy.js # Haupt-Proxy-Server
│ ├── ble-client.js # Realer BLE-Client
│ ├── mock-ble-client.js # Mock-BLE-Client (TCP)
│ ├── config.js # Konfiguration
│ └── demo.js # Demo-Skript
├── mock-ios-service/ # Mock iOS BLE Peripheral
│ ├── mock-ios.js # Haupt-TCP-Server
│ ├── http-client.js # HTTP-Anfragehandler
│ └── demo.js # Demo-Skript
└── ios-app/ # iOS Native App (Zukunft)
Unit-Tests:
# Windows-Proxy testen
cd windows-proxy
npm test
# Mock-Service testen
cd mock-ios-service
npm test
Integrationstest:
# Beide Dienste starten und mit curl testen
curl -x http://127.0.0.1:8080 https://httpbin.org/ip
Debug-Protokollierung aktivieren:
# Windows Proxy
NODE_ENV=development npm start
# Mock-Service
NODE_ENV=development npm start
BLE-Debugging (Windows):
# BLE-Adapter-Status prüfen
Get-PnpDevice | Where-Object {$_.Name -like "*Bluetooth*"}
# BLE-Verkehr überwachen (erfordert Tools)
# BLE funktioniert nicht
npm run mock # Stattdessen Mock-Modus verwenden
# Port bereits belegt
netstat -ano | findstr :8080
# Abhängigkeiten schlagen fehl
npm run install-build-tools
# Port 9999 bereits belegt
netstat -ano | findstr :9999
# Verbindung abgelehnt
# Sicherstellen, dass der Mock-Service vor dem Proxy gestartet wird
# Proxy-Einstellungen löschen
# Windows-Proxy-Einstellungen prüfen
# Andere VPNs/Proxys deaktivieren
⚠️ Dies ist ein Entwicklungs-/Testwerkzeug. Berücksichtigen Sie die Sicherheitsimplikationen:
git checkout -b feature/name)MIT-Lizenz – siehe LICENSE-Datei für Details
Status: ✅ Mock-Tests bereit | 🚧 iOS-App in Entwicklung | 📋 Produktionsfunktionen geplant