Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Сканнер Добавлено: 30.07.07 17:40  

Автор вопроса:  Valya | ICQ: 419-283-432 
Неподкажите как сделать сканер портов по IP?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Stuart



Вопросов: 5
Ответов: 152
 Профиль | | #1 Добавлено: 26.08.07 02:54
Если ты собрался делать сканер IP портов на VB6, то это не так уж сложно.
Для начало запусти VB6. Кинь на форму 4 текстовых поля, 1 кнопку, и компонент Winsock(Проект>Компоненты, и поставь галочку на Microsoft Winsock Control 6) жми на ОК. Теперь выбери текстовое поле Text1 и измени следующие свойства:
Name: txtHost, Width: 2415, Height: 285, Left: 240, Top: 240, Text=””

Свойства Text2 сделай:
Name: txtPortEnd, Width: 855, Height: 285, Left: 4080, Top: 240, Text=””

Свойства Text3:
Name: txtPortStart, Height: 285, Width: 855, Left: 3120, Top: 240, Text=””

Свойства Text4:
Name: FoundPorts, Height: 2175, Width: 6735, Left: 240, Top: 720, MultiLine=True, Scrollbars=2-Вертикаль, Text=””

Имя кнопки пускай останется таким как есть, измени только свойство Caption= Start
У Winsock’a измени свойство Name= Sock, а значение Index=0

Теперь осталось закончить работу с кодом, вот он:


Private Sub Command1_Click()
Dim Socket As Variant
Dim CurrentPort As Integer
Const MaxSockets = 100
On Error Resume Next
If Command1.Caption = "Start" Then
txtHost.Enabled = False
txtPortStart.Enabled = False
txtPortEnd.Enabled = False
Command1.Caption = "Stop"
For i = 1 To MaxSockets
Load Sock(i)
Next i
CurrentPort = txtPortStart.Text
While Command1.Caption = "Stop"
For Each Socket In Sock
DoEvents
If Socket.State <> sckClosed Then
GoTo continue
End If
Socket.Close
If CurrentPort = Val(txtPortEnd.Text) + 1 _
Then Exit For
Socket.RemoteHost = txtHost.Text
Socket.RemotePort = CurrentPort
Socket.Connect
CurrentPort = CurrentPort + 1
continue:
Next Socket
 Wend
Command1.Caption = "Start"
txtHost.Enabled = True
txtPortStart.Enabled = True
txtPortEnd.Enabled = True
Else
Command1.Caption = "Start"
End If
For i = 1 To MaxSockets
Unload Sock(i)
Next i
End Sub

Private Sub FoundPorts_Change()
FoundPorts.SelStart = Len(FoundPorts.Text)
End Sub

Private Function AddPort(Port As Integer)
FoundPorts.Text = FoundPorts.Text & "[Connected] Port " & Port & vbCrLf
End Function

Private Sub Sock_Connect(Index As Integer)
AddPort (Sock(Index).RemotePort)
Sock(Index).Close
End Sub

Private Sub Sock_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Sock(Index).Close
End Sub


После, запусти свой проект, в текстовом поле имя которого txtHost, введи свой IP Adress.
В текстовом поле txtPortStart введи значение 1, а в текстовом поле txtPortEnd, введи значение 65536. И жми на кнопку Start.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам