Primero de todo creamos un nuevo EXE Estandar.

Crearemos primero de todo un timer.

Ya creado lo dejamos donde sea en cualquier parte del formulario y le ponemos de Valor Enabled (False) y en Interval (5).
Usaremos para mostrar si tenemos puertos abiertos un Winsock.
Os mostraré como agregarlo.

En la barra de herramientas le damos a Proyecto y en ese menu desplegable le damos a Componentes, si no sabes como dale a [Ctrl+T].
Luego buscamos Microsoft Winsock Control y lo activamos.

Nos saldrá esto en la barra de herramientas.
winsock.gif)
Y lo ponemos también en nuestro formulario, y no le tocamos nada, porque sus opciones las editaremos después.
Ahora creamos una lista.

Creamos 2 TextBox


Nos quedaría algo así.

Ahora le cambiamos los captions a los botones, por los de: Comenzar, Parar, Limpiar, Cancelar.
Y el texto del Text1 por: 127.0.0.1 y el del Text2 por: 1
Y empezamos con el código.
Código
'----------------------------------- Private Sub Command1_Click() Timer1.Enabled = True 'Activa el timer, para que empiece a analizar puertos Command1.Enabled = False 'Desactiva el botón Comenzar Command2.Enabled = True 'Activa el botón Parar, la primera vez que se inicia no hace nada End Sub '----------------------------------- Private Sub Command2_Click() Timer1.Enabled = False 'Desactiva el timer. Command1.Enabled = True 'Activa el botón comenzar Command2.Enabled = False ' Y desactiva el botón Parar End Sub '----------------------------------- Private Sub Command3_Click() List1.Clear 'Limpia la lista de puertos que hayan sido detectados abiertos End Sub '----------------------------------- Private Sub Command4_Click() Timer1.Enabled = False ' Desactiva el timer Text2.Text = "1" 'Y retorna al principio el remoteport Command1.Enabled = True Command2.Enabled = True 'Activa los dos botones de comenzar y parar End Sub '----------------------------------- Private Sub Timer1_Timer() On Error Resume Next Winsock1.Close Text2.Text = Int(Text2.Text) + 1 ' va agregando un puerto cada vez que el timer pasa. Winsock1.RemoteHost = Text1.Text 'IP Winsock1.RemotePort = Text2.Text 'Puerto Winsock1.Connect 'Intenta conectarse End Sub '----------------------------------- Private Sub Winsock1_Connect() List1.AddItem "Puerto: " & Winsock1.RemotePort & " Abierto!" 'En caso de que el winsock se conecte nos lo muestra en la lista, con el puerto correspondiente End Sub '-----------------------------------
Y esto sería en realidad todo lo que nos hace falta para crear un escaneador de puertos realmente sencillo.
Luego podemos mejorar su aspecto por otro como este.

Mi proyecto: http://www.megaupload.com/?d=LXEK8A0P