?
, um die Verknüpfungsliste anzuzeigen.Stellen Sie sicher, dass Node.js installiert ist.
Klonen Sie den Code:
git clone https://github.com/jason5ng32/MyIP.git
Installieren und erstellen:
npm install && npm run build
Laufen:
npm start
Das Programm wird auf Port 18966 ausgeführt.
Klicken Sie oben auf die Schaltfläche „Deploy to Docker“, um die Bereitstellung abzuschließen. Oder verwenden Sie die folgende Shell:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
Sie können das Programm verwenden, ohne Umgebungsvariablen hinzuzufügen. Wenn Sie jedoch einige erweiterte Funktionen nutzen möchten, können Sie die folgenden Umgebungsvariablen hinzufügen:
Variablenname | Erforderlich | Standardwert | Beschreibung |
---|---|---|---|
BACKEND_PORT | NEIN | "11966" | Der laufende Port des Backend-Teils des Programms |
FRONTEND_PORT | NEIN | "18966" | Der laufende Port des Frontend-Teils des Programms |
SECURITY_RATE_LIMIT | NEIN | "0" | Steuert die Anzahl der Anfragen, die eine IP alle 60 Minuten an den Backend-Server stellen kann (auf 0 gesetzt, ohne Begrenzung). |
SECURITY_DELAY_AFTER | NEIN | "0" | Kontrolliert alle 20 Minuten die ersten X-Anfragen von einer IP, die keinen Geschwindigkeitsbegrenzungen unterliegen, und nach X-Anfragen erhöht sich die Verzögerung |
SECURITY_BLACKLIST_LOG_FILE_PATH | NEIN | "logs/blacklist-ip.log" | Pfadeinstellung. Zeichnet die Liste der IPs auf, die das Limit ausgelöst haben, nachdem SECURITY_RATE_LIMIT aktiviert wurde |
BING_MAP_API_KEY | NEIN | "" | API-Schlüssel für Bing Maps, der zur Anzeige des Standorts der IP auf einer Karte verwendet wird |
ALLOWED_DOMAINS | NEIN | "" | Zulässige Domänen für den Zugriff, durch Kommas getrennt, um Missbrauch der Backend-API zu verhindern |
IPCHECKING_API_KEY | NEIN | "" | API-Schlüssel für IPCheck.ing, der verwendet wird, um genaue IP-Geolokalisierungsinformationen zu erhalten |
IPINFO_API_TOKEN | NEIN | "" | API-Token für IPInfo.io, der zum Abrufen von IP-Geolokalisierungsinformationen über IPInfo.io verwendet wird |
IPAPIIS_API_KEY | NEIN | "" | API-Schlüssel für IPAPI.is, der zum Abrufen von IP-Geolokalisierungsinformationen über IPAPI.is verwendet wird |
KEYCDN_USER_AGENT | NEIN | "" | Der Domänenname muss bei Verwendung von KeyCDN das Präfix https enthalten. Wird verwendet, um IP-Adressinformationen über KeyCDN zu erhalten |
CLOUDFLARE_API | NEIN | "" | API-Schlüssel für Cloudflare, der zum Abrufen von AS-Systeminformationen über Cloudflare verwendet wird |
MAC_LOOKUP_API_KEY | NEIN | "" | API-Schlüssel für die MAC-Suche, der zum Abrufen von MAC-Adressinformationen verwendet wird |
VITE_GOOGLE_ANALYTICS_ID | Ja | "" | Google Analytics-ID, die zur Verfolgung des Nutzerverhaltens verwendet wird |
VITE_CURL_IPV4_DOMAIN | NEIN | "" | Stellt Benutzern die IPv4-Domäne für die CURL-API zur Verfügung |
VITE_CURL_IPV6_DOMAIN | NEIN | "" | Stellt Benutzern die IPv6-Domäne für die CURL-API zur Verfügung |
VITE_CURL_IPV64_DOMAIN | NEIN | "" | Stellt Benutzern die Dual-Stack-Domäne für die CURL-API zur Verfügung |
Beachten Sie, dass die CURL-API nicht aktiviert wird, wenn eine der Umgebungsvariablen der CURL-Serie fehlt.
Umgebungsvariablen erstellen:
cp .env.example .env
Ändern Sie .env
und fügen Sie beispielsweise Folgendes hinzu:
BACKEND_PORT=11966
FRONTEND_PORT=18966
BING_MAP_API_KEY= " YOUR_KEY_HERE "
ALLOWED_DOMAINS= " example.com "
IPCHECKING_API= " YOUR_KEY_HERE "
Starten Sie dann den Backend-Dienst neu.
Sie können beim Ausführen von Docker Umgebungsvariablen hinzufügen, zum Beispiel:
docker run -d -p 18966:18966
-e BING_MAP_API_KEY= " YOUR_KEY_HERE "
-e ALLOWED_DOMAINS= " example.com "
-e IPCHECKING_API= " YOUR_TOKEN_HERE "
--name myip
jason5ng32/myip:latest
Wenn Sie einen Proxy für den Internetzugang verwenden, sollten Sie erwägen, diese Regel zu Ihrer Proxy-Konfiguration hinzuzufügen (ändern Sie sie entsprechend Ihrem Client). Mit diesem Setup können Sie sowohl Ihre echte IP als auch die IP bei Verwendung des Proxys überprüfen:
# IP Testing
IP-CIDR,1.0.0.1/32,Proxy,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,Proxy,no-resolve
DOMAIN,4.ipcheck.ing,DIRECT
DOMAIN,6.ipcheck.ing,DIRECT
# Rule Testing
DOMAIN,ptest-1.ipcheck.ing,Proxy1
DOMAIN,ptest-2.ipcheck.ing,Proxy2
DOMAIN,ptest-3.ipcheck.ing,Proxy3
DOMAIN,ptest-4.ipcheck.ing,Proxy4
DOMAIN,ptest-5.ipcheck.ing,Proxy5
DOMAIN,ptest-6.ipcheck.ing,Proxy6
DOMAIN,ptest-7.ipcheck.ing,Proxy7
DOMAIN,ptest-8.ipcheck.ing,Proxy8
Als Version 2.0 veröffentlicht wurde, sagte ich, dass 70 % des Codes für dieses Programm nicht von mir, sondern von ChatGPT geschrieben wurden. Nach etwa 90 Interaktionen und einigen kleineren manuellen Anpassungen war die gesamte Codebasis fertiggestellt.
Natürlich erforderten die Architektur und die Benutzeroberfläche immer noch mein eigenes Design.
Mit der Veröffentlichung von Version 3.0 und nachfolgenden Versionen ist der Anteil des mit Hilfe von ChatGPT geschriebenen Codes schrittweise zurückgegangen und liegt nun schätzungsweise zwischen 40 % und 50 %. Im Gegenteil, in diesem Prozess habe ich mich von fehlenden JavaScript- und Vue-Kenntnissen zu einer Fähigkeit entwickelt, den Großteil des JS-Codes zu verstehen, und jetzt kann ich einige davon selbst schreiben.
Dank KI hat es mir, einem arbeitslosen Produktmanager, eine schnelle Gelegenheit gegeben, Programmieren zu lernen.