Externe IP ermitteln und in Datei Speichern
Guten Abend,
ich suche ein Script (batch oder ähnliches), dass mir die Externe IP des Computers ermittelt und dann in ein Textdokument schreibt.
zusätzlic soll noch protokolliert werden, welcher Benutzer gerade zu diesem zeitpunkt an dem Computer gewesen ist.
mit freundlichen Grüßen
mesterdisast
ich suche ein Script (batch oder ähnliches), dass mir die Externe IP des Computers ermittelt und dann in ein Textdokument schreibt.
zusätzlic soll noch protokolliert werden, welcher Benutzer gerade zu diesem zeitpunkt an dem Computer gewesen ist.
mit freundlichen Grüßen
mesterdisast
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147957
Url: https://administrator.de/contentid/147957
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
29 Kommentare
Neuester Kommentar
Hallo,
ist der rechner direkt am Netz oder in einem LAN?
ist der rechner direkt am Netz oder in einem LAN?
Moin,
Schreib mal genau was du haben willst - denn sonst fallen mir leider noch ganz viele Wenn und abers ein
Gruß
Zitat von @45877:
Hallo,
ist der Rechner direkt am Netz oder in einem LAN?
Hallo,
ist der Rechner direkt am Netz oder in einem LAN?
- Welche externe Ip solls denn sein - denn wenn er im Lan ans Wan angeschlossen ist - hat er die gleiche, die der Router vom Provider bekommen hat.
- Welches der Osse aus Redmont? wäre es denn?
- Und wenns ein Serverler ist - ist der im TS Server Mode oder ganz banal?
- jeweils für der Kiste die frägen tut - und die die stasifiziert werden soll?
Schreib mal genau was du haben willst - denn sonst fallen mir leider noch ganz viele Wenn und abers ein
Gruß
Hallo Mesterdisast,
wenn Deine Rechner alle an einem Router hängen, ist ihre externe IP bei allen gleich. Es gibt das Kommandozeilentool wget, mit dem Du per Batch einen Download machen kannst. Gib als Quelladresse folgendes an: http://www.whatismyip.com/automation/n09230945.asp . Es kommt dann ein Dokument zurück, dessen einziger Inhalt Deine externe IP ist. wget hat viele Optionen, es wäre Dein Part, Dich damit zu beschäftigen.
Was noch zu klären wäre ist, ob Du die Abfrage, welcher User an den Rechnern angemeldet ist, vom jeweiligen Rechner machen willst oder von einem "Zentralrechner" aus.
Gruß
Friemler
wenn Deine Rechner alle an einem Router hängen, ist ihre externe IP bei allen gleich. Es gibt das Kommandozeilentool wget, mit dem Du per Batch einen Download machen kannst. Gib als Quelladresse folgendes an: http://www.whatismyip.com/automation/n09230945.asp . Es kommt dann ein Dokument zurück, dessen einziger Inhalt Deine externe IP ist. wget hat viele Optionen, es wäre Dein Part, Dich damit zu beschäftigen.
Was noch zu klären wäre ist, ob Du die Abfrage, welcher User an den Rechnern angemeldet ist, vom jeweiligen Rechner machen willst oder von einem "Zentralrechner" aus.
Gruß
Friemler
Moin,
zu haar
genau dieser Thematik haben wir uns (speziell Bastla) schon ziemlich genau mit allen Umständen auseinandergesetzt - den Fred sollte man in der Suche hier finden können.
@ Friemler - nein - diese Systemvariable ist keine, das ist eine Uservariable - daher greift der Tipp voll ins rote ;-(
(Da kommt - wenn überhaupt der Name desjenigen raus - der das Script startet - das müste also auf dem Rechner selber gesehen - und das das u.U. witzlos ist - ist ja klar)
PS:Ich würde da ja was vom Mark empfehlenloggedon
Gruß
Die PSTools vonSysinternalsMicrosoft sind für viele nette Sachen eine Goldgrube - auch für diese.
zu haar
genau dieser Thematik haben wir uns (speziell Bastla) schon ziemlich genau mit allen Umständen auseinandergesetzt - den Fred sollte man in der Suche hier finden können.
@ Friemler - nein - diese Systemvariable ist keine, das ist eine Uservariable - daher greift der Tipp voll ins rote ;-(
(Da kommt - wenn überhaupt der Name desjenigen raus - der das Script startet - das müste also auf dem Rechner selber gesehen - und das das u.U. witzlos ist - ist ja klar)
PS:Ich würde da ja was vom Mark empfehlenloggedon
Gruß
Die PSTools von
Hi !
Ähhhmmm, warum wundert mich das jetzt nicht? :-P
mrtux
Ähhhmmm, warum wundert mich das jetzt nicht? :-P
mrtux
Moin Mesterdisast,
Zeile 05/06 sowie Zeile 09/10 sind jeweils EINE etwas längere Zeile.
Alternativ & zur Lesbarkeit: An den gewünschten Stellen Zeilenumbruch einfügen - aber so, dass auch "Befehlszeilen" jeweils komplett sind
Also so:
-oder so: -
Grüße
Biber
P.S. @t-mo:
Marks [ps]LoggedOn funktioniert aber nur bei erlaubtem Remote-Registry-Zugriff auf jeden Rechner -
und der ist auch nicht mehr automatisch durch Adminrechte gewährleistet AFAIK
Zeile 05/06 sowie Zeile 09/10 sind jeweils EINE etwas längere Zeile.
Alternativ & zur Lesbarkeit: An den gewünschten Stellen Zeilenumbruch einfügen - aber so, dass auch "Befehlszeilen" jeweils komplett sind
Also so:
@echo off & setlocal
set URL=http://www.wieistmeineip.de/
set G=%temp%\GetHTML.vbs
echo Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open "GET",WScript.Arguments(0),False:Http.Send:WScript.Echo Http.ResponseText>%G%
set ExtIP=
for /f "tokens=2 delims=<>" %%i in ('cscript //nologo %G% "%URL%"^|findstr /c:"<h1 class=\"ip\">"') do set ExtIP=%%i
del %G%
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof
echo %ExtIP%
-oder so: -
@echo off & setlocal
set URL=http://www.wieistmeineip.de/
set G=%temp%\GetHTML.vbs
echo Set Http=CreateObject("WinHttp.WinHttpRequest.5.1") >%G%
echo Http.Open"GET",WScript.Arguments(0),False:Http.Send:WScript.Echo Http.ResponseText>>%G%
set ExtIP=
for /f "tokens=2 delims=<>" %%i in (
'cscript //nologo %G% "%URL%"^|findstr /c:"<h1 class=\"ip\">"'
) do set ExtIP=%%i
del %G%
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof
echo %ExtIP%
Grüße
Biber
P.S. @t-mo:
Marks [ps]LoggedOn funktioniert aber nur bei erlaubtem Remote-Registry-Zugriff auf jeden Rechner -
und der ist auch nicht mehr automatisch durch Adminrechte gewährleistet AFAIK
Moin Friemler,
deinen Test mit "Tokens=3" statt tokens=2 kann ich wiederum nicht reproduzieren.
[CMD-Prompt-Demo. Das führende ">" NICHT mit eingeben, gehört zu meinem Prompt,]
deinen Test mit "Tokens=3" statt tokens=2 kann ich wiederum nicht reproduzieren.
[CMD-Prompt-Demo. Das führende ">" NICHT mit eingeben, gehört zu meinem Prompt,]
(=21:20:18 D:\temp=)
>for /f "delims=<> tokens=2" %i in ("<h1 class="ip">200.200.200.200</h1>") do @echo %i
200.200.200.200
(=21:20:23 D:\temp=)
>for /f "delims=<> tokens=3" %i in ("<h1 class="ip">200.200.200.200</h1>") do @echo %i
/h1
Hallo Mesterdisast!
Grüße
bastla
@echo off & setlocal
set "Log=D:\Dein Pfad\IP.txt"
set URL=http://checkip.dyndns.com/
set G=%temp%\GetHTML.vbs
echo On Error Resume Next:Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open "GET",WScript.Arguments(0),False:Http.Send:Q=Split(Http.ResponseText,":")(1):WScript.Echo Trim(Split(Q,"<")(0))>%G%
set ExtIP=
for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i"
del %G%
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
bastla
Hallo Mesterdisast,
Zeile 2 Deines Schnipsels muss lauten:
Die Zeile von Bastla's Skript, in der die externe IP ausgegeben wird, ergänzt Du um >>Log.txt
Mit > leitest Du die Ausgabe eines Befehls in eine Datei um, die dann neu angelegt wird. Mit >> leitest Du ebenfalls die Ausgabe um, hängst den Text aber an eine Datei an.
Gruß
Friemler
Zeile 2 Deines Schnipsels muss lauten:
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2%>Log.txt
Die Zeile von Bastla's Skript, in der die externe IP ausgegeben wird, ergänzt Du um >>Log.txt
Mit > leitest Du die Ausgabe eines Befehls in eine Datei um, die dann neu angelegt wird. Mit >> leitest Du ebenfalls die Ausgabe um, hängst den Text aber an eine Datei an.
Gruß
Friemler
Moin bastla,
noch ein winziger Verbesserungsvorschlag in Mesterdisasts Sinne.
Die letzen beiden Zeilen würde ich ändern von
..in dieses:
Dann hat er zumindest die Anmeldezeiten und Usernamen statt gar nix plus die Info, dass die ExterneIp nicht ermittelt werden konnte.
Und der arme DAU-User hat nicht unverhofft eine Info "Externe IP konnte nicht ermittelt werden." nach dem Anschalten....
...der greift doch sonst sofort zum Telefon oder zum Underberg.
Andererseits... du hast ja das "pause" rausgenommen...da sieht eh keiner was
Grüße
Biber
noch ein winziger Verbesserungsvorschlag in Mesterdisasts Sinne.
Die letzen beiden Zeilen würde ich ändern von
....
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
..in dieses:
....
if not defined ExtIP Set "ExtIP=Externe IP konnte nicht ermittelt werden."
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
Dann hat er zumindest die Anmeldezeiten und Usernamen statt gar nix plus die Info, dass die ExterneIp nicht ermittelt werden konnte.
Und der arme DAU-User hat nicht unverhofft eine Info "Externe IP konnte nicht ermittelt werden." nach dem Anschalten....
...der greift doch sonst sofort zum Telefon oder zum Underberg.
Andererseits... du hast ja das "pause" rausgenommen...da sieht eh keiner was
Grüße
Biber
@Biber
Dein Vorschlag ist definitiv die bessere Wahl.
Für die Optimierer unter uns: Die Zeile
könnte einfach als
nach oben verschoben werden und die Zeile 7 (also: "
Grüße
bastla
... der greift doch sonst sofort zum Telefon oder zum Underberg.
Wieso oder? Dein Vorschlag ist definitiv die bessere Wahl.
Für die Optimierer unter uns: Die Zeile
if not defined ExtIP Set "ExtIP=Externe IP konnte nicht ermittelt werden."
Set "ExtIP=Externe IP konnte nicht ermittelt werden."
set ExtIP=
") ersetzen.Grüße
bastla
Ein Tool:
http://lab1.de/Central/Software/Internet/Webmaster/Publish-My-IP/ PublishMyIP generiert TXT oder HTML Dateien Deiner externen DSL IP.
Das ganze in ein Batchfile bei Anmeldung des Users:
http://lab1.de/Central/Software/Internet/Webmaster/Publish-My-IP/ PublishMyIP generiert TXT oder HTML Dateien Deiner externen DSL IP.
Das ganze in ein Batchfile bei Anmeldung des Users:
echo %username%>ichwilldichueberwachen.txt
Starte publishmyip.exe
[OT]
Hallo Biber,
ist zwar schon 'ne Weile her, aber trotzdem: Das Skript von bastla aus diesem Thread funktioniert nur nach Änderung in tokens=3.
Grund:
bastla schrieb
Die Zeile, die er sucht, lautet
(man beachte die führenden Leerzeichen). Durch "delims=<>" zählen Leerzeichen nicht mehr als Trennzeichen, die führenden Leerzeichen sind also das erste Token, zweites Token ist "h1 class="ip"" und das dritte Token die IP-Adresse.
Deine direkt eingegebene Zeile enthält keine führenden Leerzeichen, funktioniert also mit "tokens=2".
Gruß
Friemler
[/OT]
Hallo Biber,
ist zwar schon 'ne Weile her, aber trotzdem: Das Skript von bastla aus diesem Thread funktioniert nur nach Änderung in tokens=3.
Grund:
bastla schrieb
"tokens=2 delims=<>"
<h1 class="ip">80.153.114.131</h1>
Deine direkt eingegebene Zeile enthält keine führenden Leerzeichen, funktioniert also mit "tokens=2".
Gruß
Friemler
[/OT]
[dito OT]
@Friemler
Grüße
bastla
[/dito OT]
@Friemler
ist zwar schon 'ne Weile her
... ist genau der Punkt - im April 2008 sah die Zeile, die er suchte, noch so wie im damaligen Kommentar beschrieben aus ...Grüße
bastla
[/dito OT]
[OT]
Hallo bastla,
hätte Dir so einen Schnitzer auch nicht zugetraut . Nix für ungut.
Gruß
Friemler
[/OT]
Hallo bastla,
Zitat von @bastla:
... ist genau der Punkt - im April 2008 sah die Zeile, die er suchte, noch so wie im damaligen Kommentar
beschrieben aus ...
... ist genau der Punkt - im April 2008 sah die Zeile, die er suchte, noch so wie im damaligen Kommentar
beschrieben aus ...
hätte Dir so einen Schnitzer auch nicht zugetraut . Nix für ungut.
Gruß
Friemler
[/OT]
[OT]
Hallo Friemler!
Danke - ich hatte aber damals ohnehin schon angemerkt
Grüße
bastla
[/OT]
Hallo Friemler!
Danke - ich hatte aber damals ohnehin schon angemerkt
... davon abhängig, dass die Struktur des HTML-Quellcodes der Website nicht wesentlich verändert wird ...
Die Version unterhalb (vom 29.07.2010, 21:28:07 Uhr) sollte etwas robuster sein, muss aber natürlich ebenfalls scheitern, wenn sich der Aufbau des HTML-Codes ändert (aber nicht an ein paar zusätzlichen Leerzeichen an Anfang oder Ende ) ...Grüße
bastla
[/OT]
Super Thread hier! Für die Eiligen unter uns
Jetzt nur mehr Pfad ändern und ab in die Aufgabenplanung (http://windows.microsoft.com/de-DE/windows-vista/Schedule-a-task)!
@echo off & setlocal
set "Log=D:\Dein Pfad\IP.txt"
set URL=http://checkip.dyndns.com/
set G=%temp%\GetHTML.vbs
echo On Error Resume Next:Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open "GET",WScript.Arguments(0),False:Http.Send:Q=Split(Http.ResponseText,":")(1):WScript.Echo Trim(Split(Q,"<")(0))>%G%
Set "ExtIP=Externe IP konnte nicht ermittelt werden."
for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i"
del %G%
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
Jetzt nur mehr Pfad ändern und ab in die Aufgabenplanung (http://windows.microsoft.com/de-DE/windows-vista/Schedule-a-task)!