none
Batch Datei um zu Fragen ob er im richtigen NETZ ist RRS feed

  • Frage

  • Hallo,

    ich wollte eine kleine Batch Datei schreiben um zu fragen, ob der Rechner im Richtigen Netz ist.

    Mit dieser Zeile Setze ich die Variable ADRE mit der IP Adresse:

    FOR /F "tokens=5" %%a in ('netsh interface ipv4 show route ^| find "0.0.0.0/0"') do @FOR /F "tokens=2" %%A in ('netsh interface ipv4 show addresses %%a ^| find "IP-Ad"') do @set ADRE=%%A

    Das funktioniert auch so weit, aber dann komm ich nicht weiter, wenn er im Netz sagen wir 10.0.0.x ist, wie ist dann die Abfrage?

    Diese Zeile funktioniert leider nicht

    IF %ADRE% == 10.0.0.* goto weiter

    Habt Ihr eine Idee??

    Danke im Voraus

    Montag, 14. November 2016 13:19

Antworten

  • Hi
     
    Am 14.11.2016 um 14:19 schrieb Peter Rupp:
    > Mit dieser Zeile Setze ich die Variable ADRE mit der IP Adresse:
    > FOR /F "tokens=5" %%a in ('netsh interface ipv4 show route ^| find
    > "0.0.0.0/0"') do @FOR /F "tokens=2" %%A in ('netsh interface ipv4 show
    > addresses %%a ^| find "IP-Ad"') do @set ADRE=%%A
     
    Du brauchst ja nicht die Adresse, sondern die NetID, die sich aufgrund
    der Netmask ergibt.
     
    als 2zeiler, zB die erste ermittelt die Adresse, die 2te zerlegt sie in
    die Oktets und baut daraus die NetID, in diesem Beispiel für 255.255.255.0
     
    for /f "Tokens=2 Delims=[] skip=1" %%i in ('ping -n 1 %computername%')
    do set IPAdress=%%i
    for /f "Tokens=1,2,3 Delims=." %%a in ('echo %IPAdress%') do set
    NetID=%%a.%%b.%%c
     
    Jetzt sollte dein "if NetID=10.0.0 goto whatever" funktionieren.
     
    Tschö
    Mark
    --
    Mark Heitbrink - MVP Group Policy - Cloud and Datacenter Management
     
    Homepage:  http://www.gruppenrichtlinien.de - deutsch
     
    • Als Antwort markiert Peter Rupp Montag, 14. November 2016 14:10
    Montag, 14. November 2016 13:57

Alle Antworten

  • Hi
     
    Am 14.11.2016 um 14:19 schrieb Peter Rupp:
    > Mit dieser Zeile Setze ich die Variable ADRE mit der IP Adresse:
    > FOR /F "tokens=5" %%a in ('netsh interface ipv4 show route ^| find
    > "0.0.0.0/0"') do @FOR /F "tokens=2" %%A in ('netsh interface ipv4 show
    > addresses %%a ^| find "IP-Ad"') do @set ADRE=%%A
     
    Du brauchst ja nicht die Adresse, sondern die NetID, die sich aufgrund
    der Netmask ergibt.
     
    als 2zeiler, zB die erste ermittelt die Adresse, die 2te zerlegt sie in
    die Oktets und baut daraus die NetID, in diesem Beispiel für 255.255.255.0
     
    for /f "Tokens=2 Delims=[] skip=1" %%i in ('ping -n 1 %computername%')
    do set IPAdress=%%i
    for /f "Tokens=1,2,3 Delims=." %%a in ('echo %IPAdress%') do set
    NetID=%%a.%%b.%%c
     
    Jetzt sollte dein "if NetID=10.0.0 goto whatever" funktionieren.
     
    Tschö
    Mark
    --
    Mark Heitbrink - MVP Group Policy - Cloud and Datacenter Management
     
    Homepage:  http://www.gruppenrichtlinien.de - deutsch
     
    • Als Antwort markiert Peter Rupp Montag, 14. November 2016 14:10
    Montag, 14. November 2016 13:57
  • Danke, 

    hab aber noch eine andere Lösung gefunden. IP Aufdröseln:

    for /f "tokens=1,2,3,4 delims=." %%a in ("%IP%") do set IPb1=%%a&set IPb2=%%b&set IPb3=%%c&set IPb4=%%d

    Und dann nach den einzelteilen fragen.

    Montag, 14. November 2016 14:11