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 IP Adresse herausfinden und Oktette zerlegen

Frage Entwicklung Batch & Shell

Mitglied: Kim

Kim (Level 1) - Jetzt verbinden

20.03.2009, aktualisiert 11:56 Uhr, 7891 Aufrufe, 7 Kommentare

Hallo,

ich habe das Problem, dass ich bei einer Softwareverteilung dies nur auf einen bestimmten IP-Adressbereich verteilen kann, aber die Rechnernamen nach gleicher Syntax aufgebaut sind XX-YY-[001-***]

Jetzt sollte die Batch vor starten der Verteilung jeden Rechner auf die IP überprüfen und zwar müssen die ersten 3 Oktette 192.168.123. sein.

Ich hab schon einige Zeit mit Googeln und Testen verbracht, jedoch ohne Erfolg.

Wäre nett, wenn mir jemand einen Tipp geben könnte.

Vielen Dank im Vorraus!

Kim
Mitglied: godlie
20.03.2009 um 14:03 Uhr
Hier ein Ansatz an der If Schleife und deren GOTOS kannst du dich dann austoben.
grüße

01.
@echo off & setlocal 
02.
ipconfig >%temp%\DanisIp.txt 
03.
 
04.
REM --  bzw. "Ethernetadapter LAN-Verbindung: steht 
05.
REM - Die Zeilennummer wird in Blockstart gespeichert 
06.
for /f "delims=:" %%i in ('findstr /n "\<LAN-Verbindung\>" %temp%\DanisIp.txt') do set /a Blockstart=%%i 
07.
REM Zeilen überspringen 
08.
set /a BlockStart+=3 
09.
REM Aus der entsprechenden Zeile die IP-Adresse auslesen bzw. splitten 
10.
for /f "tokens=14 delims=: " %%i in ('findstr /n "." %temp%\DanisIp.txt^|findstr "%blockstart%:"') do set "theIp=%%i" 
11.
echo Ermittelte IP ist [%theIP%] 
12.
 
13.
del %temp%\DanisIp.txt 
14.
 
15.
for /f "tokens=1,2,3 delims=." %%i in ('echo %theIp%') do set IPSuff=%%i.%%j.%%k 
16.
echo %IPSuff% 
17.
 
18.
IF "%IPSuff%" == "192.168.172" ( 
19.
goto treffer  
20.
) ELSE ( 
21.
goto nontreffer 
22.
23.
 
24.
:treffer 
25.
REM Hier der Teil wenn die IP passt 
26.
echo foobab 
27.
 
28.
:nontreffer 
29.
REM Hier der Teil wo die IP nicht passt 
30.
echo fasl
Bitte warten ..
Mitglied: Kim
20.03.2009 um 17:26 Uhr
Hmm, danke für deine schnelle Hilfe.

Das würde funktionieren, wenn ich das an einem Client starten würde, ich muss aber vom Server aus das ganze steuern, also wäre deine Variante leider nicht möglich, geht das ganze denn irgendwie mit ping %rechnername% ?

Gruß
Kim
Bitte warten ..
Mitglied: Biber
20.03.2009 um 18:59 Uhr
Moin Kim,

reicht es nicht, wenn Du die einzelnen Rechnernamen mit
ping %rechnername%|findstr "[192\.168\.123" >nul && echo Rechner %rechnername% ist im IP-Nummernkreis
...durchnudelst?

Grüße
Biber
Bitte warten ..
Mitglied: Kim
20.03.2009 um 19:07 Uhr
Hmm, muss ich am Montag mal testen, hab hier keinen Windows Rechner an dem ichs testen könnte, aber vielen Dank für die schnelle Antwort!

Schönes WE wünsch ich allen!

Gruß
Kim
Bitte warten ..
Mitglied: Kim
23.03.2009 um 10:41 Uhr
Moin Biber,

grad mal getestet, mit der Syntax spuckt er bei mir nie das ECHO aus. Hast den Code mal getestet? Funktioniert er bei dir?

Gruß
Kim

Zitat von Biber:
Moin Kim,

reicht es nicht, wenn Du die einzelnen Rechnernamen mit
> ping %rechnername%|findstr "[192\.168\.123" >nul
&& echo Rechner %rechnername% ist im IP-Nummernkreis
...durchnudelst?

Grüße
Biber
Bitte warten ..
Mitglied: Biber
23.03.2009 um 11:58 Uhr
Moin Kim,

Ja, bei mir funktioniert es.
Allerdings ist in meinem Beispiel die Variable %rechnername% wirklich nur ein Platzhalter.
  • Testen am CMD-Prompt kannst Du ja, wenn Du gegen Deinen eigenen Rechner %computername% pingst
01.
 ping %computername% -n 1|find "[192.168"
Der nächste Schritt wäre dann, eine erweiterbare Test-Zeile am CMD-Prompt aufzubauen:
01.
 for %i in (%computername%) @do ping %i -n 1|find "[192.168"
...und diese (wenn es bis hierhin klappt) zu erweitern auf
01.
 for %i in (%computername% unknown1 unknown2) @do ping %i -n 1|find "[192.168"
... damit auch die Computer-nicht-erreichbar-Fälle angetestet sind.
Statt der einfachen FOR-Anweisung kannst Du auch aus einer Rechnernamen-Tetdatei lesen mit FOR /F. [For /F %i in (meinerechner.txt) do... ]

Im Batch vor der Laufvariablen ein Prozentzeichen mehr als am CMD-Prompt (%%i statt %i).

Grüße
Biber
Bitte warten ..
Mitglied: Kim
23.03.2009 um 14:34 Uhr
Super, funktioniert :o)

Vielen Dank!!
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
gelöst Windows 10, FritzBox,EWE, keine IP Adresse ! (3)

Frage von decker zum Thema Windows Netzwerk ...

LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (18)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Email in Exchange an 2ten Empfänger senden (18)

Frage von MultiStorm zum Thema Exchange Server ...

Weiterbildung
Gehaltsvorstellungen (16)

Frage von SYS64738 zum Thema Weiterbildung ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (13)

Frage von planetIT2016 zum Thema Windows Server ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...