on error resume on_error winsock1.localport=1212 winsock1.listen on_error: msgbox ("the port has been opened", ,"prompt")
可以使用扫描,直接指定tcp7000 text1,ip地址 text2,起始端口 text3,终止端口 text4,信息 command1,扫描 command2,停止 添加winsock控件, 代码 Option Explicit Dim PortNo As LongPrivate Sub Command1_Click() PortNo = CLng(Text2.Text) Text4.Text = "" Command2.Enabled = True Command1.Enabled = False Winsock1.Connect Text1.Text, PortNo Me.Caption = "连接端口扫描编号:" & PortNo End SubPrivate Sub Command2_Click() Command1.Enabled = True Command2.Enabled = False Winsock1.Close PortNo = CLng(Text2.Text) End SubPrivate Sub Form_Load() Text1.Text = "127.0.0.1" Text2.Text = "1" Text3.Text = "32767" Label1.Caption = "IP 地址" Label2.Caption = "起始连接端口" Label3.Caption = "终止连接端口" Command1.Caption = "开始扫描" Command2.Caption = "停止"End Sub Private Sub Winsock1_Connect() Text4.Text = Text4.Text & "连接端口编号:" & Str(Winsock1.RemotePort) & vbCrLf Winsock1.Close PortNo = PortNo + 1 If PortNo <= CLng(Text3.Text) Then Me.Caption = "连接端口扫描编号:" & PortNo Winsock1.Connect Text1.Text, PortNo Else Command2_Click End If End SubPrivate 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 PortNo = PortNo + 1 If PortNo <= CLng(Text3.Text) Then Me.Caption = "连接端口扫描" & PortNo Winsock1.Connect Text1.Text, PortNo Else Command2_Click End If End Sub
你可以用GETtickcount函数啊!或用TIMER控件!控制超时时间! 你试试: winsock1:index=0 form_load() for i= 1 to 100 winsock1(i).load next end cmd_click() dim i as integer i=0 again: s=i+100 for i=i to s if val(text1.text)+i>text2.text then exit for end if winsock1(I).localport=val(text1.text)+i next if i< val(text2.text) then goto again: end if end sub
用我这种方法吧,挺快的 Private Sub Command1_Click() Dim i As Integer List1.Clear For i = Val(Text2) To Val(Text3) Me.Caption = i Winsock1.Close Winsock1.Connect Text1, i Sleep (1) DoEvents If Winsock1(0).State = 7 Then List1.AddItem i End If Next i End Sub
for i=1 to 10 load winsock(i) winsock(i).senddata reomete,port next 可以实现
winsock1.localport=1212
winsock1.listen
on_error:
msgbox ("the port has been opened", ,"prompt")
text1,ip地址
text2,起始端口
text3,终止端口
text4,信息
command1,扫描
command2,停止
添加winsock控件,
代码
Option Explicit
Dim PortNo As LongPrivate Sub Command1_Click()
PortNo = CLng(Text2.Text)
Text4.Text = ""
Command2.Enabled = True
Command1.Enabled = False
Winsock1.Connect Text1.Text, PortNo
Me.Caption = "连接端口扫描编号:" & PortNo
End SubPrivate Sub Command2_Click()
Command1.Enabled = True
Command2.Enabled = False
Winsock1.Close
PortNo = CLng(Text2.Text)
End SubPrivate Sub Form_Load()
Text1.Text = "127.0.0.1"
Text2.Text = "1"
Text3.Text = "32767"
Label1.Caption = "IP 地址"
Label2.Caption = "起始连接端口"
Label3.Caption = "终止连接端口"
Command1.Caption = "开始扫描"
Command2.Caption = "停止"End Sub
Private Sub Winsock1_Connect()
Text4.Text = Text4.Text & "连接端口编号:" & Str(Winsock1.RemotePort) & vbCrLf
Winsock1.Close
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描编号:" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End SubPrivate 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
PortNo = PortNo + 1
If PortNo <= CLng(Text3.Text) Then
Me.Caption = "连接端口扫描" & PortNo
Winsock1.Connect Text1.Text, PortNo
Else
Command2_Click
End If
End Sub
你试试:
winsock1:index=0
form_load()
for i= 1 to 100
winsock1(i).load
next
end
cmd_click()
dim i as integer
i=0
again:
s=i+100
for i=i to s
if val(text1.text)+i>text2.text then
exit for
end if
winsock1(I).localport=val(text1.text)+i
next
if i< val(text2.text) then
goto again:
end if
end sub
Private Sub Command1_Click()
Dim i As Integer
List1.Clear
For i = Val(Text2) To Val(Text3)
Me.Caption = i
Winsock1.Close
Winsock1.Connect Text1, i
Sleep (1)
DoEvents
If Winsock1(0).State = 7 Then
List1.AddItem i
End If
Next i
End Sub
load winsock(i)
winsock(i).senddata reomete,port
next
可以实现
我的意思是可以调用 系统提供的那些命令 ,如net,telnet等