这是我学习vb网络编程时自己练习编写的,部分源码是参考教材的
没什么技术性 借以抛砖引玉
/////////////////////////////////////////////////////////////////////////////
程序需要建立一个窗体,加入winsock text(4个) command(2个)控件
Option Explicit
'定义端口变量
Dim port As Long
Private Sub Command1_Click()
'把字符串转换为long型
port = CLng(Text2.Text)
'过滤空格 否则会使CPU达到100%
Text1.Text = Trim(Text1.Text)
Text4.Text = ""
Command2.Enabled = True
Command1.Enabled = False
Winsock1.Connect Text1.Text, port
Me.Caption = "正在扫描端口" & port
End Sub
Private Sub Command2_Click()
Command1.Enabled = True
Command2.Enabled = False
Winsock1.Close
End Sub
Private Sub Form_Load()
Text1.Text = "127.0.0.1"
Text2.Text = 1
Text3.Text = 65535
Text4.Text = "软件名称:端口扫描器 v1.0" & _
vbCrLf & _
vbCrLf & _
"作者:东方
www.hackbase.com" & _
vbCrLf & _
vbCrLf & _
"日期:2004.7.4" & _
vbCrLf & _
vbCrLf & _
"此软件只供内部学习研究使用!如果您发现该软件的任何bug ,请及时与我联系"
End Sub
Private Sub Winsock1_Connect()
Text4.Text = Text4.Text & "扫描端口:" & Str(Winsock1.RemotePort) & "开放" & vbCrLf
Winsock1.Close
port = port + 1
If port <= CLng(Text3.Text) Then
Me.Caption = "正在扫描端口:" & port
Winsock1.Connect Text1.Text, port
Else
Command2_Click
End If
End Sub
'失败则调用Winsock1_Error()
Private Sub Winsock1_Error(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)
Winsock1.Close
port = port + 1
If port <= CLng(Text3.Text) Then
Me.Caption = "正在扫描端口" & port
Winsock1.Connect Text1.Text, port
Else
Command2_Click
End If
End Sub
程序很简单 我就不作说明了 如果有什么不对的 还请指出