La Web Buscar   
Manuales: 558
 
    Nombre del Tutorial

Lista de programas con puertos tcp/ip abiertos y programa usado

    Categoria Index / Sistemas Operativos / Windows XP
     Visitas 1165
     Valoracion
     Fecha 03-12-2007
     Descripción Cómo ver la lista de programas que tienen puertos tcp/ip abiertos (en escucha) y el programa que los usa.
Lista de programas con puertos tcp/ip abiertos y programa usado


Este TIP es válido solamente para WindowsXP Profesional, en la versión Home no existe el programa tasklist.

Ejecutar en una ventana de comandos (cmd.exe):

for /F "usebackq tokens=4,5" %i in (`netstat -ao ^| find "LISTENING"`) do @for /F "usebackq tokens=1,2" %k in (`tasklist`) do @if %j == %l @echo %j %k

NOTA: Sed cuidadosos al teclear esto, respetando los espacios en blanco.

Si quieremos crearnos un .bat con la linea anterior, debereis sustituir cada % por %%. Es decir, nuestro .bat quedaría:

@echo off

for /F "usebackq tokens=4,5" %%i in (`netstat -ao ^| find "LISTENING"`) do @for /F "usebackq tokens=1,2" %%k in (`tasklist`) do @if %%j == %%l @echo %%j %%k

pause

Este comando no está optimizado en tiempo de ejecución ya que llama excesivas veces al programa tasklist: lo llama una vez por cada puerto abierto, pero funciona perfectamente y sirve para ver como ejemplo de la potencia del lenguaje de comandos.

Para mejorar su tiempo de respuesta nos podemos ahorrar estas llamadas, realizará una sola si el .bat lo hacemos así :

@echo off

tasklist > %temp%\tasklist.tmp

for /F "usebackq tokens=4,5" %%i IN (`netstat -ao ^| find "LISTENING"`) do @for /F "usebackq tokens=1,2" %%k in (%temp%\tasklist.tmp) do @if %%j == %%l @echo %%j %%k
del %temp%\tasklist.tmp >nul

pause

NOTA: Lo que está en la línea del "for".... es UNA sola línea.

Bien, la salida de ese comando para ver los procesos que estan en escucha en tcp/ip, muestra el número del proceso y el proceso que tiene abierto un puerto en escucha, pero no nos muestra el número de puerto que está abierto. Para ver el número de puerto y el proceso asociado, el comando es:

for /F "usebackq tokens=2,3,4,5,6,7 delims=: " %g in (`netstat -nao ^| find "LISTENING"`) do @for /F "usebackq skip=2 tokens=1,2" %m IN (`tasklist`) do @if %l == %n @echo %h %m

Y si queremos crearnos un .bat que lo haga:
@echo off
for /F "usebackq tokens=2,3,4,5,6,7 delims=: " %%g in (`netstat -nao ^| find "LISTENING"`) do @for /F "usebackq skip=2 tokens=1,2" %%m IN (`tasklist`) do @if %%l == %%n @echo %%h %%m
pause

NOTA: Lo que está en la línea for, es una SOLA línea.

Se pueden hacer auténticas virguerías con el uso de comandos. En la ayuda de XP viene perfectamente detallado, y en el XP Profesional viene además como una ayuda aparte que puede verse ejecutando:

%windir%\hh.exe ntcmds.chm





 
 

Ir arriba

MundoManuales.CoM © 2005
Haznos tu pagina de inicio Envianos un Email Enviar tutorial