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, 7849 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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

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

Netzwerke
Clientname anhand MAC Adresse herausfinden (13)

Frage von VerruecktesPferd zum Thema Netzwerke ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...