VB + Winsock + CGI 实现 QQ (OICQ) 在线检测

王朝vb·作者佚名  2006-01-08
宽屏版  字体: |||超大  

B + Winsock + CGI 实现 QQ (OICQ) 在线检测(支持代理服务器)!

标准 EXE 例程下载

http://microinfo.top263.net/Zip/WskQQExe.zip

'请先 "引用" -> "浏览" -> "Windows 目录\SYSTEM\MSWINSCK.OCX"

Option Explicit

Dim sResponse As String

Dim WithEvents WinsockX As MSWinsockLib.Winsock

Dim WithEvents WinsockListenX As MSWinsockLib.Winsock

Private Sub Check1_Click()

Text2.Enabled = VBA.IIf(Check1.Value = vbChecked, True, False)

Text3.Enabled = Text2.Enabled

End Sub

Private Sub Check2_Click()

If Check2.Value = vbChecked Then

Text4.Enabled = False

WinsockListenX.Protocol = sckTCPProtocol

WinsockListenX.LocalPort = CInt(Text4.Text)

WinsockListenX.Listen

Else

Text4.Enabled = True

If WinsockX.State <> sckClosed Then

WinsockX.Close

End If

If WinsockListenX.State <> sckClosed Then

WinsockListenX.Close

End If

End If

End Sub

Private Sub Command1_Click()

sResponse = ""

Command1.Enabled = False

Me.MousePointer = vbHourglass

Dim i As Long

If WinsockX.State <> sckClosed Then

WinsockX.Close

End If

WinsockX.Protocol = sckTCPProtocol

If Check1.Value = vbChecked Then

WinsockX.Connect Trim(Text2.Text), CInt(Text3.Text)

Else

WinsockX.Connect "search.tencent.com", 80

End If

Do Until WinsockX.State = sckConnected

DoEvents

i = i + 1

If i > 50000 Then

If VBA.MsgBox("TimeOut,Retry?", vbQuestion + vbYesNo) = vbYes Then

i = 0

Else

Command1.Enabled = True

Me.MousePointer = vbDefault

Exit Sub

End If

End If

Loop

WinsockX.SendData "POST " & VBA.IIf(Check1.Value = vbChecked, "HTTP://search.tencent.com", "") & "/cgi-bin/friend/oicq_find HTTP/1.1" & vbCrLf _

& "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*" & vbCrLf _

& "Accept -Language: zh -cn" & vbCrLf _

& "Content-Type: application/x-www-form-urlencoded" & vbCrLf _

& "Accept -Encoding: gzip , deflate" & vbCrLf _

& "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)" & vbCrLf _

& "Host: " & WinsockX.RemoteHost & vbCrLf _

& "Content-Length: " & VBA.Len(VBA.Trim("oicq_no=" & VBA.Trim(Text1.Text) & "&mov=0&begnum=0")) & vbCrLf _

& "Connection: Keep -Alive" & vbCrLf _

& "Cookie: 3wave=1" & vbCrLf & vbCrLf _

& "oicq_no=" & VBA.Trim(Text1.Text) & "&mov=0&begnum=0"

End Sub

Private Sub Form_Load()

Text1.Text = "6881818"

Text2.Text = "192.168.0.1"

Text3.Text = "8080"

Text4.Text = "80"

Set WinsockX = New MSWinsockLib.Winsock

Set WinsockListenX = New MSWinsockLib.Winsock

Check1_Click

Check2_Click

End Sub

Private Sub WinsockListenX_ConnectionRequest(ByVal requestID As Long)

If WinsockX.State <> sckClosed Then

WinsockX.Close

End If

WinsockX.Accept requestID

End Sub

Private Sub WinsockX_Close()

Command1.Enabled = True

Me.MousePointer = vbDefault

If sResponse Like "*http://img.tencent.com/face/*-3.gif*" Then

MsgBox "Off line!"

ElseIf sResponse Like "*http://img.tencent.com/face/*-2.gif*" Then

MsgBox "On line!"

ElseIf sResponse Like "*http://img.tencent.com/face/*-1.gif*" Then

MsgBox "Hide!"

End If

End Sub

Private Sub WinsockX_DataArrival(ByVal bytesTotal As Long)

Dim s As String

WinsockX.GetData s, vbString

If Check2.Value = vbChecked Then

MsgBox s

End If

sResponse = sResponse & s

End Sub

ActiveX DLL 例程下载:

http://microinfo.top263.net/Zip/WskQQDll.zip

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有