Copy Link
Add to Bookmark
Report
7 - Scanner en VB
[ N1ck_M4 ]
Explicacion de como crear un escaneador de puertos desde Visual Basic, el ejecutable y el codigo fuente se encuentran el fichero adjunto scanner.zip
Al escanear un puerto de nuestro equipo lo que hacemos es poner el puerto en esqucha.
Si nos marca el erroro 10048 quiere decir que el puerto esta en uso
;)
para hacer el fuente solo ocupas 3 cuadros de texto
- text1
- text2
- text3
un boton de comando
- command1
El control winsock
- winsock1
4 etiquetas
- label1
- label2
- label3
- label4
Debe tener mas o menos esta apariencia:
Asi Se Ve Tipo de Objetos
----------------------------------------------------------
Puerto inicial Puerto final <------label1 y label2
_______ _________
¶_______¶ ¶_________¶ <--------text1 y text2
_________
¶ Iniciar ¶ <-------------Command1
---------+
___________________________
¶Escaneando: ¶ <---------------Label3
---------------------------+
Puertos Abiertos: <---------------Label4
____________________________
¶ ¶
¶ ¶
¶ ¶
¶ ¶
¶ ¶ <-----------------Text3
¶ ¶
¶ ¶
¶____________________________+
el siguiente codigo lo copias en declaraciones:
Private Sub Command1_Click()
On Error GoTo errors 'Al marcar el error de puerto en uso se va a
'esta parte para registrarlo
Dim num_Puerto As Long 'Variable que representa el puerto a escanear
num_Puerto = Text1 'se inicia la variable con el valor del text1
Do 'ciclo para escanear los puertos del rango text1 a text2
Winsock1.Close 'cerramos el ultimo puerto abierto.
DoEvents 'Para que no se cuelgue la maquina
Label3.Caption = "Escaneando:---> " & num_Puerto 'en cual vamos
Winsock1.LocalPort = num_Puerto 'asignamos el numero de puerto
DoEvents
Winsock1.Listen 'y lo ponemos en escucha
'Aqui es donde se genera el error
'si el puerto esta en uso(se va a errors)
DoEvents
num_Puerto = num_Puerto + 1 'se incrementa el numero de puerto
Loop Until num_Puerto > Text2.Text 'se repite hasta el valor del text2
Exit sub 'aqui termina
errors:
If Err.Number = 10048 Then 'si el purto esta en uso
Text3 = Text3 & num_Puerto & vbCrLf 'lo mandamos al text3
DoEvents
Resume Next ' y continuamos con el siguiente puerto
End If
End Sub
eso es todo
Un Saludo Desde Monterrey N.L.
By N1ck_M4