[Batch] Wenn Port offen, dann ...

Ultraflip

Erfahrenes Mitglied
Hallo zusammen,

folgendes Problem versuche ich aktuell über einen Batch zu lösen:

Ich habe zwei Rechner auf die ich per VNC zugreifen möchte. Hierbei möchte ich per Batch im Vorfeld prüfen, ob diese belegt sind. Also vom Prinzip her:

Ablauf:
Ist Rechner1 frei? ja: VNC öffnen und IP übergeben nein: nächster Test
Ist Rechner2 frei? ja: VNC öffnen und IP übergeben nein: Meldung, dass beide belegt sind.

Prüfen möchte ich es mit
Code:
netstat -p TCP 192.168.0.x | find "%Port%"
(gesuchter Port ist 5905)
bekomme aber kein lauffähiges Script zusammen ;o(

Kann mir jemand helfen wie das funktioniert, ggf. mit Quelle wo man das nachlesen kann?

Vielen Dank und LG
Ultraflip
 
Hi.

Ungefähr so?
Code:
netstat -p TCP -n | findstr /r "192\.168\.0\.x:5905[ ]" 2>nul >nul
if errorlevel 1 (
  rem vnc aufrufen...
)
netstat -p TCP -n | findstr /r "192\.168\.0\.x:5905[ ]"  2>nul >nul
if errorlevel 1 (
  rem vnc aufrufen...
)
...
Gruß
 
Zuletzt bearbeitet:
Hi Deepthroat,

Vielen Dank! An sich ist das schon, was ich suche.

Einzig ist noch offen, dass es für eine fremde IP, nicht für die eigene IP Adresse ist. Also

Code:
netstat -p TCP 192.168.0.x -n | findstr /r "192.168.0.x:5905[ ]"  2>nul >nul

anstelle von

Code:
netstat -p TCP -n | findstr /r "192.168.0.x:5905[ ]"  2>nul >nul

und genau hier bekomme ich nur ein schwarzes Fenster (egal ob belegt oder eben nicht) ;o(

Wenn ich den Befehl so in CMD eingebe, kommen genau die richtigen Ergebnisse.

Fällt Dir zu dem Phänomen eine Lösung ein?

Vielen Dank und LG
 
Hi.
Einzig ist noch offen, dass es für eine fremde IP, nicht für die eigene IP Adresse ist.
netstat kann nur die Verbindungen auf dem lokalen Rechner auflisten.
Code:
netstat -p TCP 192.168.0.x -n
Man kann keine IP bei netstat angeben:
Code:
$ netstat /?

Zeigt Protokollstatistiken und aktuelle TCP/IP-Netzwerkverbindungen an.

NETSTAT [-a] [-b] [-e] [-n] [-o] [-p Protokoll] [-r] [-s] [-v] [Intervall]
Oder hast du ein anderes netstat?
Wenn ich den Befehl so in CMD eingebe, kommen genau die richtigen Ergebnisse.
Wie sehen die aus?

Gruß
 
Bei näherer Betrachtung hast Du vollkommen recht. Trotz der IP im Anschluss werden nur die lokalen Ports angezeigt! (Anleitung mit IP Adresse betrifft eine Erweiterung die ich auf dem Zielsystem nicht haben werde) :(

In dem Fall muss ich an sich nochmal überdenken wie ich feststelle ob bei der externen IP der Port offen oder belegt ist.

Danke trotzdem für die Hilfe!
 
Zurück