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

Batch soll überprüfen ob sich IP geändert hat

Frage Entwicklung Batch & Shell

Mitglied: TheCranky

TheCranky (Level 1) - Jetzt verbinden

26.09.2010, aktualisiert 18.10.2012, 4618 Aufrufe, 4 Kommentare

Hallo Community,

ich möchte gerne mit einer batch überprüfen ob ich einen neue Internet IP bekommen habe

1. überprüfe welche IP man hat

nach einer gewissen zeit (oder nach ein paar anderen befehlen die in der zwichenzeit laufen) (Goto)

2. überprüffen ob die aktuelle IP noch stimmt oder eine neue existiert

- noch gleich: nach gewisser zeit nochmal prüfen oder mit anderen befehlen weitermachen (Goto)
- nicht mehr gleich: meinen angegebenen befehl folgen


Mir ist es eigendlich egal ob eine datei erstellt wird mit der IP oder ein "set %OLTIP%=( in punkt 1 überprüfte IP )" um den vergleich in punkt 2 zu starten.

Mit freundlichen Grüßen TheCranky
Mitglied: 60730
26.09.2010 um 21:10 Uhr
moin,

also für solche Fälle hat sich das preisgeben seiner Infrastruktur als äußert sinnvolle Massnahme erwiesen.

Mir ist es eigendlich egal ob eine datei erstellt wird mit der IP oder ein "set %OLTIP%=( in punkt 1 überprüfte IP )" um den vergleich in punkt 2 zu starten.

Nein ist es sicherlich nicht, denn 1 bedeutet - das script muß in eine Datei schreiben dürfen können - zwei bedeutet es muß eine Systemvariable gesetzt werden oder die batch wird zum dauerläufer und damit auch anfälliger für alle möglichen Probleme ....

Gruß
Bitte warten ..
Mitglied: bastla
26.09.2010, aktualisiert 18.10.2012
Hallo TheCranky!

Zu Punkt 1: http://www.administrator.de/forum/externe-ip-ermitteln-und-in-datei-spe ...

[Edit] ... bzw als Ansatz:
01.
@echo off & setlocal 
02.
set "Log=D:\IP.txt" 
03.
 
04.
set ExtIPOld=- 
05.
if exist "%Log%" set /p ExtIPOld=<"%Log%" 
06.
 
07.
set URL=http://checkip.dyndns.com/ 
08.
set G=%temp%\GetHTML.vbs 
09.
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% 
10.
 
11.
:Check 
12.
set ExtIP= 
13.
for /f %%i in ('cscript //nologo %G% "%URL%"') do set "ExtIP=%%i" 
14.
if not defined ExtIP goto :NichtBekannt 
15.
 
16.
if %ExtIP%==%ExtIPOld% goto :NochGleich 
17.
>"%Log%" echo %ExtIP% 
18.
set "ExtIPOld=%ExtIP%" 
19.
:: 
20.
:: Aktionen für veränderte IP 
21.
:: 
22.
goto :Check 
23.
 
24.
:NochGleich 
25.
:: 
26.
:: Aktionen für unveränderte IP 
27.
:: 
28.
goto :Check 
29.
 
30.
:NichtBekannt 
31.
echo %date% %time:~,8% Externe IP konnte nicht ermittelt werden. 
32.
:: 
33.
:: Aktionen für IP nicht bekannt 
34.
:: 
35.
goto :Check
Bitte darauf achten, dass am Ende der Zeile 17 kein Leerzeichen stehen darf!
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: TheCranky
26.09.2010 um 21:24 Uhr
Zitat von 60730:
moin,

also für solche Fälle hat sich das preisgeben seiner Infrastruktur als äußert sinnvolle Massnahme erwiesen.

Sry verstehe nicht was du meinst

Zitat von 60730:
Nein ist es sicherlich nicht, denn 1 bedeutet - das script muß in eine Datei schreiben dürfen können

was ist davon abhängig

also ich meinte damit das eine zB txt datei erstellt wird indem die alte IP gespeichert wird und wo auch später die neuen IP gespeichert werden für vergleiche

Zitat von 60730:
>zwei bedeutet es muß eine Systemvariable gesetzt werden oder die batch wird zum dauerläufer und damit auch anfälliger
für alle möglichen Probleme ....

Die Batch ist ein Dauerläufer bis man sie von hand via X beendet.

Sie startet am anfang einen HomeGameServer. Bekommt man eine neue IP muss der MasterGameServer die neue IP wissen. dafür muss der HomeGameServer nach dem man eine neue IP hat neu gestartet werden. und das macht die Batch.

zZ kann meine batch testen ob generel die intenetverbindung getrennt worden ist, dafür ping ich eine seite an. aber was wenn die seite bzw. IP mal nicht anpingbar ist? dafür will ich die eigene IP testen ob sie neu ist.
Bitte warten ..
Mitglied: TheCranky
26.09.2010 um 23:37 Uhr
Danke hilft sehr

habs auch so ähnlich gefunden, und dann abgeändert

und die GetHTML.vbs habe ich manuel erstellt. dann muss die nicht immer erstellt und wieder gelöscht werden.

habe aber zwei verschiedene erstellt:

Die 1.
wenn ich die bat ausführe prüft er das internet und setzt die aktuelle IP auf "OldIP"

ist das inet vorhanden, startet er den server

01.
@echo off & setlocal 
02.
 
03.
:: Nicht exsistierende IP auf OldIP setzten 
04.
set OldIP=000.000.000.000 
05.
 
06.
:: Ueberpruefen der aktuellen IP und neue IP auf NewIP setzen 
07.
:Check 
08.
set URL=http://checkip.dyndns.com/ 
09.
set NewIP= 
10.
for /f %%i in ('cscript //nologo GetHTML.vbs "%URL%"') do set "NewIP=%%i" 
11.
 
12.
:: Wenn keine IP ermittelt werden konnte 
13.
if not defined NewIP (wait 3000 & goto :Check) 
14.
 
15.
:: Wenn IP bekannt gehe zu XXXXX startet den Server) 
16.
Goto :XXXXX

die 2.

wenn der server gestartet ist überprüft die bat ob ich eine neue IP habe um dann den server zu beenden und neu zu starten

dafür kann ich nicht die erste benutzen da der befehl set OldIP=000.000.000.000 drinne steht und der den server deswegen neu starten würde.

01.
@echo off & setlocal 
02.
 
03.
:: Ueberpruefen der aktuellen IP und neue IP auf NewIP setzen 
04.
:Check 
05.
set URL=http://checkip.dyndns.com/ 
06.
set NewIP= 
07.
for /f %%i in ('cscript //nologo GetHTML.vbs "%URL%"') do set "NewIP=%%i" 
08.
 
09.
:: Wenn keine IP ermittelt werden konnte 
10.
if not defined NewIP (wait 3000 & goto :Check) 
11.
 
12.
:: Wenn beide IPs gleich gehe zu 
13.
if %NewIP%==%OldIP% goto :Check 
14.
 
15.
:: Ersetzt die IP von OldIP gegen die IP von NewIP 
16.
set "OldIP=%NewIP%" 
17.
 
18.
:: Wenn IP geaendert gehe zu XXXXX (in meinem fall startet er den server neu und überprüft danach wieder die IP) 
19.
Goto :XXXXX
ich muss deswegen 2 machen da er zwichen den prüfungen andere dinge macht.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Microsoft
gelöst IP geändert DNS Eintrag bleibt alte IP (12)

Frage von florianza zum Thema Microsoft ...

IDE & Editoren
gelöst IP und DNS per Batch ändern (9)

Frage von andyw5 zum Thema IDE & Editoren ...

Batch & Shell
gelöst Batch um mehrere IP-Adressen via Ping auf Erreichbarkeit zu prüfen (5)

Frage von Galindiesel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...