Netzwerk - TecChannel
Netzwerk - TecChannel
Netzwerk - TecChannel
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
1. <strong>Netzwerk</strong>-Praxis<br />
>> %temp%\y.y<br />
sort < %temp%\y.y > %temp%\x.x<br />
set pid=-1<br />
for /F "tokens=1,2" %%f in (%temp%\x.x) do call<br />
:procline %%g %%f<br />
endlocal<br />
if exist %temp%\x.x del %temp%\x.x<br />
if exist %temp%\y.y del %temp%\y.y<br />
goto :eof<br />
:procline<br />
if %pid% == %2 goto havePID<br />
echo.<br />
echo.<br />
echo ==== Process ====<br />
tasklist /FI "pid eq %2" /NH /SVC<br />
echo.<br />
echo Connections:<br />
:havePID<br />
set pid=%2<br />
echo %1<br />
goto :eof<br />
Funktion<br />
Zuerst benötigen wir eine Liste aller aktiven TCP-Verbindungen. Das erledigt der<br />
Aufruf von netstat -p TCP -a -o. Diese Ausgabe wird gefi ltert, sodass nur die<br />
Zeilen mit der Kennung ESTABLISHED übrig bleiben. Das Ergebnis wird in eine<br />
temporäre Datei x.x geschrieben.<br />
Diese Liste muss nun umgeschichtet werden, sodass Sie die PID des Prozesses als<br />
erste Spalte enthält und danach die Adresse des entfernten Rechners. Dazu wird<br />
zuerst eine eventuell noch bestehende Datei y.y gelöscht. Danach wird mithilfe<br />
einer for-Schleife die Datei umgeformt und in eine zweite Datei y.y geschrieben.<br />
Eine Alternative wäre die Ausführung der for-Schleife in einer Subshell und die<br />
Umleitung der gesamten Ausgabe per einfachem „>“ in die Datei. Dies erspart die<br />
Zeile mit dem Löschen der Datei y.y. Dazu müsste die for-Schleife wie folgt modifi<br />
ziert werden:<br />
(for /F "tokens=3,5" %%f in (%temp%\x.x) do echo %%g%%f) ><br />
➥ %temp%\y.y<br />
Diese Datei muss noch sortiert werden, damit alle gleichen PIDs untereinander<br />
stehen. So kann die Ausgabe für alle Verbindungen zu einem Prozess erfolgen, bis<br />
die PID wechselt. Dazu verwenden wir sort.<br />
Nach dem Sortieren kann die Ausgabe erzeugt werden. Damit wir wissen, welche<br />
PID gerade abgearbeitet wird, wird eine Umgebungsvariable (pid) mit der jeweiligen<br />
Prozess-ID belegt. Zu Beginn schreiben wir den Startwert -1 in die Variable.<br />
In der nun folgenden for-Schleife wird die sortierte Datei x.x Zeile für Zeile ein-<br />
36 www.<strong>TecChannel</strong>.de