[Windows] Suche Software oder Script das bei IP Change den PC runter fährt

Hans ganz

Member
Registriert
5 Jan. 2016
Beiträge
439
Hallo,

also bei bat start ip Adresse merken, z.b. 192.168.0.100 dann jede Minute die aktuelle ip abfragen und ändert sich die auf z.b. 192.168.0.99, dann soll der pc runter fahren.

Hat jemand so ein script schon fertig oder gibt es eine fertige Software die das kann ( open source, public domain)?

Vielen Dank für Ratschläge. Vielleicht ist das ja auch bei Windows eingebaut.
 
Du könntest hier mit einem ESET PROTECT Server und einem ESET PROTECT for Endpoint und dynamischen Gruppen und Gruppenregeln das Gerät isolieren und Aktionen hinterlegen.
Aufwand des Ganzen:

- 1 Server, der im WWW veröffentlicht wird
- 1 MSSQL Server
- Passende Lizenzen
- Einige Stunden Konfigurationsaufwand

Also wozu? :D
 
ich dachte mehr and eine batch, powerschell oder c++ programm.

Aber zum Thema: Um einen VPN zu überwachen.
 
Holt sich über einen PowerShell-Aufruf die aktuelle öffentliche IP-Adresse, wartet 60 Sekunden, fragt die Adresse wieder ab und wenn sie sich geändert hat fährt der Rechner nach 30 Sekunden runter. Hat zumindest bei mir gerade funktioniert.

Code:
@echo off
cls

for /f %%a in ('powershell Invoke-RestMethod api.ipify.org') do set PublicIPOrg=%%a

:loop
timeout /t 60 > null

for /f %%a in ('powershell Invoke-RestMethod api.ipify.org') do set PublicIPNew=%%a

if %PublicIPOrg% NEQ %PublicIPNew% (
    shutdown /s /t 30
    goto :eof
)
goto loop

Mit dem durch @zwieblum angeregten Fix (es wird geschaut, ob die IP mit 169 beginnt):

Code:
@echo off
cls

for /f %%a in ('powershell Invoke-RestMethod api.ipify.org') do set PublicIPOrg=%%a

:loop
timeout /t 60 > null

for /f %%a in ('powershell Invoke-RestMethod api.ipify.org') do set PublicIPNew=%%a

if %PublicIPNew:~0,2% == 169 goto loop

if %PublicIPOrg% NEQ %PublicIPNew% (
    shutdown /s /t 30
    goto :eof
)
goto loop
 
Zuletzt bearbeitet:
Danke für den Hinweis. Könnte denke ich durch so etwas gelöst werden:
Code:
if %PublicIPNew:~0,2% == 169 goto loop
 
Lässt sich auch basteln:
Code:
(Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex 14).IPAddress
wobei vorher mit
Code:
Get-NetIPAddress -AddressFamily IPv4 | Sort-Object -Property InterfaceIndex | Format-Table
der richtige Index herausgefunden werden muss (bei mir: 14).

 
Ja mit PowerShell alleine funktionierte es gut. Hab es dazu umgeschrieben. cmd mag irgendwie keine PowerShell, war so meine Erkenntnis.
 
Und warum fährt man den Rechner runter, anstatt das Interface?
 
ich habe das mal auf powershell umgeschrieben.
watchdog

Code:
#$myoldip = New-Object string[] 10
<#
For ($i=0; $i -le (10-1); $i++) {
$myoldip[$i] = Invoke-RestMethod api.ipify.org
Write-Host "Meine Anfangs IP: $myoldip"
Start-Sleep -Seconds 1
}
$myoldip
#>
$myoldip = Invoke-RestMethod api.ipify.org
Write-Host "Meine Anfangs IP: $myoldip"

while ($True)
    {
    $myip = Invoke-RestMethod api.ipify.org
    $zeit = (Get-Date).ToString("HH:mm:ss")
    cls
    Write-Host "$zeit -- Meine Anfangs IP: $myoldip und die aktuelle IP $myip"

    if ( $myIP -ne $myoldip) {
        
        shutdown /s
        pause
        break
    }


    Start-Sleep -Seconds 10
    }

cmd und powershell mögen sich ja nicht.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben