- Python 100%
| .github/workflows | ||
| .gitignore | ||
| CHANGELOG.md | ||
| checker.py | ||
| config.py | ||
| i18n.py | ||
| icons.py | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
VPN IP Checker
A lightweight cross-platform system tray app that shows whether your VPN is active — by comparing your current public IP against your configured VPN IP.
Hinweis / Note: Dies ist eine vollständig neu geschriebene Version des ursprünglichen vpn-ip-checker. Die alte Version basierte auf Kivy/Android; diese Version läuft plattformübergreifend als Systray-App unter Linux, macOS und Windows — ohne hardcodierte IPs.
Features
- 🔒 Grünes Schloss / Green lock – VPN aktiv / active (IP stimmt überein / matches)
- 🔓 Rotes Schloss / Red lock – VPN inaktiv / inactive
- ❌ Gelbes Ausrufezeichen / Yellow exclamation – Prüfung fehlgeschlagen / check failed
- 🌍 Zweisprachig / Bilingual – Deutsch oder Englisch, automatisch erkannt / auto-detected from system locale
- ⚙️ Ersteinrichtungs-Assistent / First-run setup wizard – keine hardcodierten IPs, Konfiguration in
~/.config/vpn-ip-checker/ - 🔁 Konfigurierbares Prüfintervall / Configurable check interval
- 🖥️ Optionale Interface-Prüfung / Optional interface check – z.B.
tun0auf Linux/macOS
Platforms
| Platform | Support |
|---|---|
| Linux | ✅ |
| macOS | ✅ |
| Windows | ✅ |
Installation
Fertige Binaries / Pre-built binaries (empfohlen / recommended)
Kein Python erforderlich — einfach herunterladen und ausführen.
No Python required — just download and run.
Lade die passende Binary von Releases herunter:
| Platform | Datei / File |
|---|---|
| Linux | vpn-ip-checker-linux |
| macOS | vpn-ip-checker-macos |
| Windows | vpn-ip-checker-windows.exe |
Linux/macOS: Nach dem Download ausführbar machen:
chmod +x vpn-ip-checker-linux
./vpn-ip-checker-linux
Windows: Doppelklick auf vpn-ip-checker-windows.exe.
Linux note: pystray requires a tray-capable desktop environment.
On Ubuntu/GNOME you may need the AppIndicator extension.
Aus dem Quellcode / From source
git clone https://github.com/DasAoD/vpn-ip-checker.git
cd vpn-ip-checker
pip install -r requirements.txt
python main.py
Erststart / First run
Beim ersten Start läuft automatisch ein Einrichtungs-Assistent im Terminal:
On first launch a setup wizard runs in your terminal:
==================================================
VPN IP Checker – First Setup
==================================================
Your VPN IP address (public IP when VPN is active): 1.2.3.4
URL for IP lookup [https://api.ipify.org]:
Check interval in seconds [60]:
VPN network interface (optional, e.g. tun0, leave blank if unknown):
Configuration saved.
→ /home/you/.config/vpn-ip-checker/config.ini
Zum Wiederholen: Rechtsklick auf das Systray-Icon → Einstellungen / Settings.
Konfiguration / Configuration
Die Konfiguration liegt unter ~/.config/vpn-ip-checker/config.ini:
Config is stored at ~/.config/vpn-ip-checker/config.ini:
[vpn-ip-checker]
vpn_ip = 1.2.3.4
check_url = https://api.ipify.org
interval = 60
vpn_interface = tun0
Diese Datei ist nicht Teil des Repositories.
This file is not part of the repository and will never be committed.
Lokal bauen / Build locally
pip install pyinstaller
pyinstaller --onefile --windowed --name vpn-ip-checker main.py
Mitwirkende / Contributors
Dieses Projekt wurde in Zusammenarbeit mit Claude (Sonnet 4.6) von Anthropic entwickelt.
Der überwiegende Teil des Codes, der Architektur und der Dokumentation wurde durch KI generiert und iterativ verfeinert.
This project was developed in collaboration with Claude (Sonnet 4.6) by Anthropic.
The majority of the code, architecture, and documentation was AI-generated and iteratively refined.
| Rolle / Role | Person / Tool |
|---|---|
| Projektidee & Anforderungen / Project idea & requirements | DasAoD |
| Code, Architektur, Dokumentation / Code, architecture, documentation | Claude (Anthropic) |
License
Versionierung / Versioning
Dieses Projekt verwendet Semantic Versioning:
This project uses Semantic Versioning:
MAJOR.MINOR.PATCH
| Teil / Part | Wann / When | Beispiel / Example |
|---|---|---|
MAJOR |
Breaking Change, grundlegende Umstrukturierung | v1.0.0 → v2.0.0 |
MINOR |
Neues Feature, rückwärtskompatibel / New feature, backwards-compatible | v1.0.0 → v1.1.0 |
PATCH |
Bugfix, kleine Korrekturen / Bug fix, small corrections | v1.0.0 → v1.0.1 |
Alle Änderungen sind im CHANGELOG dokumentiert.
All changes are documented in the CHANGELOG.