Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Externe IP ermitteln und in Datei Speichern

Frage Entwicklung Batch & Shell

Mitglied: Mesterdisast

Mesterdisast (Level 1) - Jetzt verbinden

29.07.2010, aktualisiert 18.10.2012, 11513 Aufrufe, 29 Kommentare

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
29 Antworten
Mitglied: 45877
29.07.2010 um 18:25 Uhr
Hallo,

ist der rechner direkt am Netz oder in einem LAN?
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 18:27 Uhr
Hallo,

der Rechner ist über einen Switch an das Netz angeschlossen. es sind noch weitere Clients am Switch.Es ist kein server vorhanden, da es ein Heimnetzwerk ist .

Mit freundlichen Grüßen
mesterdisast
Bitte warten ..
Mitglied: 60730
29.07.2010 um 18:44 Uhr
Moin,
Zitat von 45877:
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ß
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 18:53 Uhr
Doppelpost s.u.
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 18:55 Uhr
Zitat von 60730:
Hallo nochmal,
entschuldige dass ich oben zu wenige angaben über den status des Netzweks/Pc´s gemacht habe.

  • 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.

Also wenn man z.b auf die Seite ( http://www.wieistmeineip.de/ ) geht bekommt man dort seine Externe Ip angezeigt und genau diese
möchte ich haben. Wenn du damit verstehst was ich meine.

* Welches der Osse aus Redmont? wäre es denn?
Ich hab hier Windows XP 32bit Professional, Windows Vista 32bit Home Premium und Windows 7 64 bit Ultimate
* 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?
??

Mit freundlichen Grüßen Mesterdisast
Bitte warten ..
Mitglied: Friemler
29.07.2010 um 19:13 Uhr
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
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 19:18 Uhr
Zitat von Friemler:
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.

ok da schau ich dann mal nach

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.

Die Abfrage soll an jedem einzelnen rechner per GPO/Autostart ausgefüht werden.
Mit freundlichen Grüßen mesterdisast
Bitte warten ..
Mitglied: Friemler
29.07.2010 um 19:22 Uhr
Hallo Mesterdisast,

der Name des angemeldeten Users steht in der Systemvariablen %USERNAME%.

Gruß
Friemler
Bitte warten ..
Mitglied: 60730
29.07.2010 um 19:35 Uhr
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.
http://www.administrator.de/index.php?mod=search&what=all&query ...
@ 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 SysinternalsMicrosoft sind für viele nette Sachen eine Goldgrube - auch für diese.
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 19:54 Uhr
nabend nochmal wenn ich das script von bastla einsetze, dann bekomm ich nur gesagt: Echo ist ausgeschaltet (OFF)

habe noch pause am ende eingefügt damit ich es lesen kann.

Zitat von bastla:

01.
@echo off & setlocal 
02.
set URL=http://www.wieistmeineip.de/ 
03.
  
04.
 set G=%temp%\GetHTML.vbs 
05.
 echo Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open 
06.
 "GET",WScript.Arguments(0),False:Http.Send:WScript.Echo Http.ResponseText>%G% 
07.
 
08.
 set ExtIP= 
09.
 for /f "tokens=2 delims=<>" %%i in ('cscript //nologo %G% "%URL%"^|findstr /c:"<h1 
10.
 class=\"ip\">"') do set ExtIP=%%i 
11.
 del %G% 
12.
  
13.
 if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof 
14.
 echo %ExtIP% 
15.
 
Bitte warten ..
Mitglied: Friemler
29.07.2010 um 19:54 Uhr
Hallo TimoBeil,

Zitat von 60730:
...das müste also auf dem Rechner selber gesehen - und das das u.U. witzlos ist - ist ja klar

Naja, das will er ja gerade, siehe das Posting vor meinem. Über die Sinnhaftigkeit des ganzen habe ich auch schon so meine Überlegungen angestellt...

Gruß
Friemler
Bitte warten ..
Mitglied: mrtux
29.07.2010 um 20:11 Uhr
Hi !

Zitat von Mesterdisast:
habe noch pause am ende eingefügt damit ich es lesen kann.

Ähhhmmm, warum wundert mich das jetzt nicht? :-P

mrtux
Bitte warten ..
Mitglied: bastla
29.07.2010, aktualisiert 18.10.2012
Hallo Mesterdisast!

Nimm lieber die "dyndns"-Variante von hier ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
29.07.2010 um 20:16 Uhr
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:

01.
@echo off & setlocal 
02.
set URL=http://www.wieistmeineip.de/ 
03.
  
04.
 set G=%temp%\GetHTML.vbs 
05.
 echo Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open "GET",WScript.Arguments(0),False:Http.Send:WScript.Echo Http.ResponseText>%G% 
06.
 
07.
 set ExtIP= 
08.
 for /f "tokens=2 delims=<>" %%i in ('cscript //nologo %G% "%URL%"^|findstr /c:"<h1 class=\"ip\">"') do set ExtIP=%%i 
09.
 del %G% 
10.
  
11.
 if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof 
12.
 echo %ExtIP% 
13.
 
-oder so: -
01.
@echo off & setlocal 
02.
set URL=http://www.wieistmeineip.de/ 
03.
  
04.
 set G=%temp%\GetHTML.vbs 
05.
 echo Set Http=CreateObject("WinHttp.WinHttpRequest.5.1") >%G% 
06.
echo Http.Open"GET",WScript.Arguments(0),False:Http.Send:WScript.Echo Http.ResponseText>>%G% 
07.
 
08.
 set ExtIP= 
09.
 for /f "tokens=2 delims=<>" %%i in ( 
10.
          'cscript //nologo %G% "%URL%"^|findstr /c:"<h1 class=\"ip\">"' 
11.
) do set ExtIP=%%i 
12.
 del %G% 
13.
  
14.
 if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof 
15.
 echo %ExtIP% 
16.
 
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
Bitte warten ..
Mitglied: Friemler
29.07.2010 um 20:36 Uhr
Hallo Mesterdisast,

ich habe auch das Skript aus dem Original-Posting von Bastla getestet, es hat nicht funktioniert. Statt tokens=2 muss es tokens=3 heißen. So funktioniert es jedenfalls bei mir.

Gruß
Friemler
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 21:01 Uhr
das Tool ist gut nur muss ich jetzt das ausgelesene noch in eine Datei bekommen (zb IP.log oder IP.txt ... ) dazu soll dann noch der Benutzername und die Uhrzeit wann sich der benutzer eingeloggt hat.
Mit freundlichen Grüßen mesterdisast
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 21:21 Uhr
also hallo nochmal,

den benutzer und die zeit habe ich mit

01.
@echo off 
02.
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% 
03.
pause
ausgelesen
jetzt wie bekomme ich das in eine txt datei rein? dann hab ich ja schon einen teil dann fehlt nur noch die ip
Bitte warten ..
Mitglied: Biber
29.07.2010 um 21:22 Uhr
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,]
(=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 
Bitte warten ..
Mitglied: bastla
29.07.2010 um 21:28 Uhr
Hallo Mesterdisast!
01.
@echo off & setlocal 
02.
set "Log=D:\Dein Pfad\IP.txt" 
03.
 
04.
set URL=http://checkip.dyndns.com/ 
05.
set G=%temp%\GetHTML.vbs 
06.
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% 
07.
set ExtIP= 
08.
for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i" 
09.
del %G% 
10.
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof 
11.
 
12.
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
Grüße
bastla
Bitte warten ..
Mitglied: Friemler
29.07.2010 um 21:31 Uhr
Hallo Mesterdisast,

Zeile 2 Deines Schnipsels muss lauten:

01.
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
Bitte warten ..
Mitglied: Mesterdisast
29.07.2010 um 21:34 Uhr
Zitat von bastla:
Hallo Mesterdisast!
01.
@echo off & setlocal 
02.
> set "Log=D:\Dein Pfad\IP.txt" 
03.
>  
04.
> set URL=http://checkip.dyndns.com/ 
05.
> set G=%temp%\GetHTML.vbs 
06.
> echo On Error Resume Next:Set Http=CreateObject("WinHttp.WinHttpRequest.5.1"):Http.Open 
07.
> "GET",WScript.Arguments(0),False:Http.Send:Q=Split(Http.ResponseText,":")(1):WScript.Echo 
08.
> Trim(Split(Q,"<")(0))>%G% 
09.
> set ExtIP= 
10.
> for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i" 
11.
> del %G% 
12.
> if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof 
13.
>  
14.
> echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%" 
15.
> 
Grüße
bastla

genau sowas hab ich gesucht. Vielen vielen dank du warst meine rettung

Mit freundlichen Grüßen mesterdisast
Bitte warten ..
Mitglied: Biber
29.07.2010 um 21:51 Uhr
Moin bastla,

noch ein winziger Verbesserungsvorschlag in Mesterdisasts Sinne.

Die letzen beiden Zeilen würde ich ändern von
01.
 .... 
02.
if not defined ExtIP echo Externe IP konnte nicht ermittelt werden. & goto :eof  
03.
 
04.
echo %Username% , %time:~0,2%:%time:~3,2%:%time:~6,2% , %ExtIP% >>"%Log%"
..in dieses:
01.
 .... 
02.
if not defined ExtIP Set "ExtIP=Externe IP konnte nicht ermittelt werden."  
03.
 
04.
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
Bitte warten ..
Mitglied: bastla
29.07.2010 um 21:57 Uhr
@Biber
... 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."
könnte einfach als
Set "ExtIP=Externe IP konnte nicht ermittelt werden."
nach oben verschoben werden und die Zeile 7 (also: "set ExtIP=") ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: ceng.de
29.07.2010 um 23:19 Uhr
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:
01.
echo %username%>ichwilldichueberwachen.txt 
02.
Starte publishmyip.exe
Bitte warten ..
Mitglied: Friemler
15.09.2010, aktualisiert 18.10.2012
[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=<>"
Die Zeile, die er sucht, lautet
    <h1 class="ip">80.153.114.131</h1>
(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]
Bitte warten ..
Mitglied: bastla
15.09.2010 um 19:34 Uhr
[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]
Bitte warten ..
Mitglied: Friemler
15.09.2010 um 19:50 Uhr
[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 ...

hätte Dir so einen Schnitzer auch nicht zugetraut . Nix für ungut.

Gruß
Friemler
[/OT]
Bitte warten ..
Mitglied: bastla
15.09.2010 um 19:59 Uhr
[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]
Bitte warten ..
Mitglied: anve
17.07.2011 um 01:52 Uhr
Super Thread hier! Für die Eiligen unter uns

01.
@echo off & setlocal  
02.
set "Log=D:\Dein Pfad\IP.txt" 
03.
 
04.
set URL=http://checkip.dyndns.com/  
05.
set G=%temp%\GetHTML.vbs  
06.
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%  
07.
Set "ExtIP=Externe IP konnte nicht ermittelt werden."   
08.
for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i"  
09.
del %G% 
10.
 
11.
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)!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Router & Routing
gelöst Zwei verschiedene Externe IP Adressen über ein Netzwerk? (8)

Frage von aif-get zum Thema Router & Routing ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...