Foro de Informatica
" Hay la misma diferencia entre un sabio y un ignorante que entre un hombre vivo y un cadáver "

- Aristóteles -



        


Google
 
Web www.ComputerFacil.com
Forista del Mes:

dejavi




  Reply to this topicStart new topicStart Poll

> Cómo Ver La Lista De Programas Que Tienen Puertos, win xp profesional
CIRUS-110
Publicado: Dec 1 2005, 04:13 PM
Quote Post


* Puxa Puxa *
Group Icon

Grupo: Colaboradores
Mensajes: 1.165
Miembro nº: 2.577
Registrado: 14-May 05



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

@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

Jose Manuel Tella Llop
http://www.multingles.net/jmt.htm




PMEmail Poster
Top
0 usuario(s) está(n) leyendo esta discusión (0 invitado(s) y 0 usuario(s) anónimo(s))
0 miembro(s):

Topic Options Reply to this topicStart new topicStart Poll

 


ComputerFacil.com © 2006
          Webs Afiliadas - Contacto
Ofertas PCs :: Consultor de Marketing Online :: Foros :: Posicionamiento Web :: Foros de Informatica :: Foros :: elhacker