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

原创 2001年07月02日 15:18:00

VB + 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

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

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 05:29
  • 269

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

vB + Winsock + CGI 实现 QQ (OICQ) 在线检测(支持代理服务器)!标准 EXE 例程下载http://microinfo.top263.net/Zip/WskQQExe.zi...
  • wjb9921
  • wjb9921
  • 2008年03月02日 04:27
  • 876

QQ协议分析及还原

最初,QQ通信协议并没有加密,而是直接采取明文的方式进行传输,到了后来才使用了加密传输,加密算法一直没有变过,使用的是blowfish算法,但是密钥的交换协议变得比较频繁。其实TX也是被逼的,现在的互...
  • qinggebuyao
  • qinggebuyao
  • 2012年07月31日 15:24
  • 49203

vb中的 winsock如何实现监听功能和连接功能

通信程序通常都是采用Client/Server形式。这就要求作为服务器的主机可以同时处理多个客户的请求。因此在编写服务器程序时要添加多个Winsock控件。在开始我们先加入两个Winsock控件。其中...
  • tiger777
  • tiger777
  • 2007年12月31日 13:03
  • 2067

vb6编写代理服务器

工程说明  程序中有三个WINSOCK对像  SERVER是一个监听对像,监听被代理(即ID)是的请求,如果IE发来请求,则打开一个  Winsock2对像,接受联接,并继续监听  Winsock2对...
  • ssihc0
  • ssihc0
  • 2008年10月22日 00:19
  • 993

用WINSOCK API实现同步阻塞方式的网络通讯

在VB中进行网络通讯时,一般都爱使用Winsock控件,但此控件有两点缺点,一是需要一个窗口(当然也可以修改vbp文件,实现无窗口加载Winsock控件),二是通讯方式为异步非阻塞的,对于某些基于应答...
  • lyserver
  • lyserver
  • 2009年11月15日 15:05
  • 2980

VB通过WINSOCK发送HTTP协议

 原创文章,转载请注明来源于本博客或给出超连接hi.abidu.com/石首,谢谢WINSOCK发送HTTP协议已经不是什么新鲜事物。最近有些朋友QQ上问我怎么发POST数据,怎么伪造来源地址和伪造I...
  • wjb9921
  • wjb9921
  • 2008年11月26日 23:32
  • 3781

VB中WinSock控件的属性、方法、事件及应用

一、WinSock简介        Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流...
  • u013082684
  • u013082684
  • 2015年07月29日 17:33
  • 4753

VB中使用WinSock控件编写网络程序

WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。这两种协议都能用来创建客户端和服务端应用程序。就像定时器控件一样,WinSock控件运...
  • woolnil
  • woolnil
  • 2012年08月01日 16:30
  • 2365

VB中Winsock控制的UDP协议的使用

VB中Winsock控制的UDP协议的使用    UDP协议基础:   UDP(User Datagram Protocol)是一种无连接协议,与TCP操作不同,计算机间并不需要建立一个连接,同时,一...
  • ghj1976
  • ghj1976
  • 2000年08月21日 19:29
  • 4239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB + Winsock + CGI 实现 QQ (OICQ) 在线检测
举报原因:
原因补充:

(最多只允许输入30个字)