Nueva versión del script para analizar los puertos TCP/IP abiertos en nuestra máquina
Aquí están las dos versiones: ports.cmd (XP profesional) y ports_home.cmd (XP Home).
Quien tenga XP Home, deberá bajarse además el programa PsList de http://technet.microsoft.com/es-es/sysinternals/bb896682(en-us).aspx, descomprimirlo y dejarlo en \windows\system32
Dejo aquí debajo el código de ambos scripts. Cread un fichero con ese contenido -usad cortar y pegar, ya que si no, habrá problemas de sintaxis- (y salvadlo con la extension .bat o .cmd)
------------ Para el Profesional-----------------
@echo off
setlocal enabledelayedexpansionif exist %temp%\puertos.tmp del %temp%\puertos.tmp >nul
tasklist > %temp%\tareas.tmpfor /F "usebackq tokens=2,3,4,5,6,7 delims=: " %%g in (`netstat -nao ^| find "LISTENING"`) do (
set sz1=%%h: 0
for /f "tokens=1,2 delims=:" %%s in ("!sz1:~,6!") do set sz1=%%t%%s
for /F "usebackq skip=4 tokens=1,2" %%m in (%temp%\tareas.tmp) do if %%l == %%n (
set sz3=%%n: 0
for /f "tokens=1,2 delims=:" %%s in ("!sz3:~,6!") do set sz3=%%t%%s
set sz2=%%m: =
for /f "tokens=1,2 delims=:" %%s in ("!sz2:~,16!") do set sz2=%%s%%t
echo !sz1! !sz2!!sz3! >>%temp%\puertos.tmp
)
)echo.
echo Puertos en escucha en el sistema
echo.
echo Puerto Programa PID
echo ------ ------------ ----set iant=
for /F "tokens=1* delims=" %%i in ('SORT %temp%\puertos.tmp') do if %%i NEQ !iant! (echo %%i) & set iant=%%iecho.
del %temp%\puertos.tmp >nul
del %temp%\tareas.tmp >nulendlocal
pause
goto :EOF
****************************************************************************************
------------ Para el Home-----------------
@echo off
setlocal enabledelayedexpansionif exist %temp%\puertos.tmp del %temp%\puertos.tmp >nul
pslist > %temp%\tareas.tmpfor /F "usebackq tokens=2,3,4,5,6,7 delims=: " %%g in (`netstat -nao ^| find "LISTENING"`) do (
set sz1=%%h: 0
for /f "tokens=1,2 delims=:" %%s in ("!sz1:~,6!") do set sz1=%%t%%s
for /F "usebackq skip=8 tokens=1,2" %%m in (%temp%\tareas.tmp) do if %%l == %%n (
set sz3=%%n: 0
for /f "tokens=1,2 delims=:" %%s in ("!sz3:~,6!") do set sz3=%%t%%s
set sz2=%%m: =
for /f "tokens=1,2 delims=:" %%s in ("!sz2:~,16!") do set sz2=%%s%%t
echo !sz1! !sz2!!sz3! >>%temp%\puertos.tmp
)
)echo.
echo Puertos en escucha en el sistema
echo.
echo Puerto Programa PID
echo ------ ------------ ----set iant=
for /F "tokens=1* delims=" %%i in ('SORT %temp%\puertos.tmp') do if %%i NEQ !iant! (echo %%i) & set iant=%%iecho.
del %temp%\puertos.tmp >nul
del %temp%\tareas.tmp >nulendlocal
pause
goto :EOF
--
Jose Manuel Tella Llop
jmtella@compuserve.com6 - junio - 2003