1. Startseite
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
  5. Digital Signage Info
  6. Glasfaserinternetanbieter bewerten
  7. Blog
    1. Artikel
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Blog-Artikel
  • Erweiterte Suche
  1. Glasfaserforum.de - Das Informations- und Hilfeforum rund um das Glasfaser-Internet.
  2. Forum
  3. Alles über das Glasfaser-Internet
  4. Glasfaser-Technik: Modem, Router, Netzwerk & Verkabelung

Logging der CGNAT-Adresse

  • ::1
  • 20. Juli 2025 um 23:36
  • ::1
    Profi
    Reaktionen
    154
    Beiträge
    611
    • 20. Juli 2025 um 23:36
    • #1

    Es mag für den einen oder anderen aus verschiedenen Gründen interessant sein, an Internet-Zugängen mit CGNAT (z.B. "Deutsche Glasfaser") die jeweils für den eigenen Kundenanschluss verwendete CGNAT-Adresse zu ermitteln, und zwar nicht nur einmalig bei Bedarf und interaktiv durch Aufruf geeigneter Websites (z.B. https://www.wieistmeineip.de/), die die eigene öffentliche IPv4-Adresse anzeigen, sondern (relativ) permanent per Logging über ein Skript, das die CGNAT-Adresse in regelmäßigen Zeitabständen ermittelt und versehen mit Datum/Uhrzeit in eine Log-Datei schreibt.

    Inspiriert durch https://www.howtogeek.com/839170/how-to-…ux-bash-script/ habe ich so eine Lösung mal für Windows umgesetzt:

    • Ich habe ein Batch-Skript "getmycgnat.cmd" erstellt, das bei Start meines Windows-PC mit gestartet wird und in regelmäßigen Zeitabständen die aktuelle CGNAT-Adresse inklusive Zeitstempel in eine LOG-Datei namens CGNAT.log schreibt.
    • Nachteil ist dabei, dass das Logging nur erfolgt, wenn mein Windows-PC läuft. Aber ich habe nun mal keinen 24/7 laufenden Linux-Server, der für so etwas natürlich deutlich besser geeignet wäre. Und meinem Windows-Desktop starte ich ohnehin nahezu täglich.

    Wen die Lösung interessiert und sie evtl. für sich adaptieren möchte, hier meine "Implementierung":

    In dem oben verlinkten "howtogeek" werden zwei zentrale Kommandos genannt, die die aktuelle CGNAT-Adresse ermitteln, hier mal unter meinem Windows gezeigt:

    Code
    C:\>dig -4 @resolver1.opendns.com myip.opendns.com +short
    94.31.113.244
    
    C:\>curl -s --ipv4 ifconfig.me
    94.31.113.244

    Der Vorteil von 'curl' ist, dass dieses Tool schon eine Weile Bestandteil von Windows ist. Möchte man hingegen 'dig' verwenden, das zudem ja auch eine deutlich bessere Alternative zum Windows-Werkzeug 'nslookup' darstelllt, muss man sich dieses Tool allerdings erst beschaffen - eine relativ einfache Möglichkeit, die ich verwendet habe, beschreibe ich unten.

    Als Ablageort für Tools und Skripte verwende ich einen Ordner C:\CMD, den ich auch in den System-Suchpfad (PATH-Variable) aufnehme (Erweiterte Systemeinstellungen | TAB Erweitert | Umgebungsvariablen | Systemvariablen | Variable "Path" bearbeiten | C:\CMD via "Neu" hinzufügen), damit die Tools auch ohne Pfadangabe gefunden werden.

    Dort habe ich also ein Skript namens "getmycgnat.cmd" mit folgendem Inhalt erstellt:

    Code
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    set LOG=D:\Daten\Log\CGNAT.log
    if not exist "%LOG%" echo %DATE% %TIME%: DATEI %LOG% -- ERSTELLT >"%LOG%"  
    
    :LOOP
    for /f %%i in ('dig -4 @resolver1.opendns.com myip.opendns.com +short') do (
    	echo %DATE% %TIME%: %%i >>"%LOG%"
    )
    timeout 3600 1>nul 2>&1
    goto LOOP
    Alles anzeigen

    Dazu folgende Hinweise für individuelle Anpassungen:

    • Name und Ort der Log-Datei (hier D:\Daten\Log\CGNAT.log) können natürlich beliebig individuell festgelegt werden.
    • Das Skript verwendet 'dig'. Wer 'curl' verwenden möchte, muss in der for-Schleife statt 'dig -4 @resolver1.opendns.com myip.opendns.com +short' das Kommando 'curl -s --ipv4 ifconfig.me' verwenden.
    • Das Skript ermittelt die aktuelle CGNAT-Adresse alle 3600s. Wer andere Zeitabstände wünscht, kann dies durch entsprechende Modifikation von timeout 3600 anpassen.

    Damit das Skript bei Rechnerstart und unabhängig von einem Benutzer-Login startet, habe ich einen Task in der Windows-"Aufgabenplanung" wie folgt erstellt:

    • TAB "Allgemein": Name: GETMYCGNAT; Benutzerkonto: SYSTEM; Sicherheitsoptionen: "Unabhängig von der Benutzeranmeldung ausführen"
    • TAB "Trigger": Trigger: "Beim Start" | Details: "Beim Systemstart"
    • TAB "Aktionen": Aktion: "Programm starten" | Details: "C:\CMD\getmycgnat.cmd"
    • TAB "Bedingungen": Energie: "Aufgabe nur starten, falls Computer im Netzbetrieb ausgeführt wird"
    • TAB "Einstellungen": Ausführung der Aufgabe bei Bedarf zulassen.

    Hier noch ein einfacher Weg, um an ein 'dig' für Windows heranzukommen:

    Unter https://downloads.isc.org/isc/bind9/ kann man für die letzte Version mit Windows-Unterstützung V.9.17.15 das "Windows Non-Debug Build" BIND9.17.15.x64.zip (Direktlink) herunterladen. Aus den ZIP-Archiv einfach das Tool 'dig.exe' und alle DLL-Dateien in einem gemeinsamen Ordner kopieren, zweckmäßigerweise in einen Ordner im System-Suchpfad, in meinem Fall also C:\CMD.

    Man muss nicht alle DLL-Dateien kopieren: Wenn man erst Mal nur dig.exe kopiert und aufruft, meckert es aber jede fehlende DLL an, diese kann man dann solange nachkopieren, bis dig.exe zufrieden ist (in dieser Version sind es insgesamt 11 DLL-Dateien, die mit kopiert werden müssen).

    4 Mal editiert, zuletzt von ::1 (21. Juli 2025 um 07:25)

  • HubeBube
    Erleuchteter
    Reaktionen
    1.738
    Beiträge
    7.407
    • 21. Juli 2025 um 12:25
    • #2
    Zitat von ::1

    Der Vorteil von 'curl' ist, dass dieses Tool schon eine Weile Bestandteil von Windows ist.

    Es sei mir die Anmerkung gestattet, das sowohl curl, als auch wget unter Windows (nicht das Subsystem for Linux) lediglich ein Alias auf das Powershellkommando:

    Invoke-WebRequest

    darstellen.

  • Online
    Phino
    Erleuchteter
    Reaktionen
    819
    Beiträge
    3.080
    • 21. Juli 2025 um 13:22
    • #3

    Ich finde aber der optimale Standort ist der Router, der weis so etwas doch immer als erster. ;)
    Aber tatsächlich gibt es da nur selten Logs/Listen.
    Ich hatte mich geärgert, dass ich diese Daten bei meinem Router (Unifi UDM SE) nur "unter der Haube" gefunden hatte.
    Bis ich eher aus Spieltrieb das Modul TALK (SIP-Telefonie) installiert habe. Da gibt es die Liste. Warum nicht auch in der Network-Oberfläche???
    Als Info für Unifi-Nutzer.

    Hier sieht man schön meine tägliche Zwangstrennung um 03:00.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • ::1
    Profi
    Reaktionen
    154
    Beiträge
    611
    • 21. Juli 2025 um 15:19
    • #4
    Zitat von Phino

    Ich finde aber der optimale Standort ist der Router, der weis so etwas doch immer als erster.

    Der bekommt an einem Internet-Anschluss mit CGNAT doch aber auch nicht die Änderung der CGNAT-Adresse mit!

  • ::1
    Profi
    Reaktionen
    154
    Beiträge
    611
    • 21. Juli 2025 um 15:53
    • #5
    Zitat von HubeBube

    Es sei mir die Anmerkung gestattet, das sowohl curl, als auch wget unter Windows (nicht das Subsystem for Linux) lediglich ein Alias auf das Powershellkommando:

    Invoke-WebRequest

    darstellen.

    Wohl "Jein", siehe https://www.andysblog.de/windows-curl-c…url-for-windows

    Da mein Skript in einer CMD-Shell läuft, kommt hier tatsächlich die "curl.exe" zum Einsatz, nicht jedoch das Cmdlet "Invoke-WebRequest".

  • Online
    mbo77
    Erleuchteter
    Reaktionen
    921
    Beiträge
    3.636
    • 21. Juli 2025 um 16:29
    • #6
    Zitat von ::1

    Da mein Skript in einer CMD-Shell läuft

    Gibt's die in aktuellen Windows-Versionen überhaupt noch?

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Online
    Phino
    Erleuchteter
    Reaktionen
    819
    Beiträge
    3.080
    • 21. Juli 2025 um 19:02
    • #7
    Zitat von ::1

    Der bekommt an einem Internet-Anschluss mit CGNAT doch aber auch nicht die Änderung der CGNAT-Adresse mit!

    Na ja, bei einem reinen CGNAT(IPv4) ohne IPv6 wird es sowieso schwierig etwas mit einer Namensauflösung anzufangen. Wenn man nicht von innen einen Tunnel aufbaut zu einem fixen Punkt im Netz, wird ein direkter Zugriff von außen unmöglich. Da sind reichlich Klimmzüge notwendig. ;)

  • der_user
    Reaktionen
    12
    Beiträge
    34
    • 21. Juli 2025 um 19:44
    • #8
    Zitat von mbo77

    Gibt's die in aktuellen Windows-Versionen überhaupt noch?

    Natuerlich. Wie immer zu finden unter \Windows\System32.

  • Online
    mbo77
    Erleuchteter
    Reaktionen
    921
    Beiträge
    3.636
    • 21. Juli 2025 um 20:53
    • #9
    Zitat von der_user

    Natuerlich. Wie immer zu finden unter \Windows\System32.

    Kann der Kernschrott nicht einfach sterben?

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • der_user
    Reaktionen
    12
    Beiträge
    34
    • 22. Juli 2025 um 09:37
    • #10
    Zitat von mbo77

    Kann der Kernschrott nicht einfach sterben?

    Naja, immerhin hat der "Kernschrott" jahrzentelang seinen Dienst getan. Nicht alles neue ist auch immer automatisch besser ;).

    Allerdings ist die Powershell natuerlich schon eine andere "Hausnummer".

  • Online
    mbo77
    Erleuchteter
    Reaktionen
    921
    Beiträge
    3.636
    • 22. Juli 2025 um 10:19
    • #11

    Während andere Systeme seit Jahren/Jahrzehnten richtige Shells hatten, gab es immer nur Schmerz auf Windows mit der cmd.

    Der BASIC-Interpreter auf dem C64 hat auch immer seinen Dienst getan.

  • Dorfkind
    Reaktionen
    4
    Beiträge
    21
    • 22. Juli 2025 um 11:01
    • #12

    Was unterscheidet denn richtige von falschen Shells :/

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • HubeBube
    Erleuchteter
    Reaktionen
    1.738
    Beiträge
    7.407
    • 22. Juli 2025 um 16:14
    • #13

    Ich zitiere mal das, was ein Kollege vor einigen Jahren von einer SAP-Schulung mitgebracht hat: "Windows-Server ist erst mit Einführung der Powershell ein ernstzunehmendes Betriebssystem geworden."

    Es gibt keine gute, richtige oder falsche Shells. Es kommt immer auf den jeweiligen Einsatzzweck an. Windows *.bat oder *.cmd sind Dateien für die Batchverarbeitung. Um Anwendungen (*.exe oder *.com) automatisiert ausführen zu können. Shells bieten deutlich mehr interne Funktionen als die Batchprozessoren (command.com).

    Allerdings integriert die Powershell ganz viele Funktionen des Windows OS und ab der Version 7 ist die Powershell auch plattformübergreifend für Windows und Linux zu nutzen. Freilich gibt es da einen Bruch zwischen Version 5 und 7. In Version 5 könnte noch der Windows Task-Scheduler (Aufgabenplanung) gesteuert werden. Diese integrierte Funktionalität ist in Powershell 7 weggefallen. Allerdings gibt es wie in Perl oder Python Repositories aus denen man die fehlenden Commandlets nachladen kann.

    Sollte ich wieder ein Linux-Desktop nutzen, dann wird auf alle Fälle dort auch eine Powershell zu finden sein bzw. von mir installiert werden.

  • ::1
    Profi
    Reaktionen
    154
    Beiträge
    611
    • 22. Juli 2025 um 16:26
    • #14

    Hm, hier ging es eigentlich um Logging von CGNAT-Adressen und nicht um Shell-Diskussionen ...

  • HubeBube
    Erleuchteter
    Reaktionen
    1.738
    Beiträge
    7.407
    • 22. Juli 2025 um 16:37
    • #15

    Deshalb machte ich den Schlenker zum Scheduler. Ich lasse es damit aber auch gut sein ;).

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.

Glasfaseranbieter jetzt bewerten

Du bist mit deinem Glasfaseranbieter (un)zufrieden?

Dann nutze unsere community-getriebene Bewertungsplattform glasfaseranbieter.de - jetzt mit dem Glasfaserforum Login unkompliziert bewerten!

Jetzt in wenigen Sekunden fair bewerten!

Tags

  • IPv4 CGNAT
  • Logging
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™ 6.2.6

Wir respektieren Deine Privatsphäre

Wir nutzen Cookies und ähnliche Technologien für den Betrieb der Seite, Reichweitenmessung und Werbung. Du entscheidest, was Du erlaubst. Details in unserer Datenschutzerklärung. Deine Auswahl kannst Du jederzeit über den Link „Cookie-Einstellungen“ im Fußbereich ändern.

Cookie-Einstellungen

Wähle aus, welche Kategorien Du erlaubst. Für jede Kategorie kannst Du über „Details anzeigen“ sehen, welche Cookies und Skripte konkret geladen werden, welche Empfänger beteiligt sind und wie lange gespeichert wird.

Weitere Informationen: Datenschutzerklärung · Impressum