# [Batch] Wenn Port offen, dann ...



## Ultraflip (14. Februar 2011)

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

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


----------



## Ultraflip (16. Februar 2011)

Keine eine Idee?


----------



## deepthroat (16. Februar 2011)

Hi.

Ungefähr so?

```
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ß


----------



## Ultraflip (16. Februar 2011)

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


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

anstelle von


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


----------



## deepthroat (16. Februar 2011)

Hi.





Ultraflip hat gesagt.:


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


Ultraflip hat gesagt.:


> ```
> netstat -p TCP 192.168.0.x -n
> ```


Man kann keine IP bei netstat angeben:

```
$ 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?


Ultraflip hat gesagt.:


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


Wie sehen die aus?

Gruß


----------



## Ultraflip (17. Februar 2011)

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!


----------

