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

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

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Cómo ver la lista de programas que tienen puertos tcp/ip abiertos (en escucha) y el programa que los usa.

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í :

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

@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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies