Nếu muốn kiểm tra online toàn diện 100% chính xác, bạn cần Login 1 ID, và gửi 1 packet đến nick cần kiểm tra (packet peer to peer)
Ở đây mình sẽ viết packet, chứ không viết login!!! vì cách login thì trong mấy bài viết của bác
TD giới thiệu rất kỹ rồi (trong các bài về boot)
Ở đây không gửi packet boot, mà ngược lại là gửi packet
peer to peer (P2P) để kiểm tra online !!!!
QUOTE
Public Function CheckOnline(WhoFrom As String, WhoTo As String) As String
Dim Pck As String
Pck = "4" & WhoFrom & "1" & WhoFrom & "4" & WhoFrom & "12MTY3NzgzMDMzNg==61025" & WhoTo & "13749PEERTOPEER"
CheckOnline = Header("4F", Pck) 'Thêm Header vào packet để hoàn chỉnh Format của một YMSG packet
End Function
để gửi packet dùng winsock:
Winsock1.SendData CheckOnline("nickmuoncheck")
Sau khi gửi packet, sẽ có một packet được trả về máy của bạn bởi yahoo, cần kiểm tra packet này để biết nick có
tồn tại, online, offlineQUOTE
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Data as String
Winsock1.GetData Data
If Mid(Data, 12, 1) = "O" Then 'Check Online Offline
If InStr(1, Data, "ÿÿÿÿ") And LCase(Split(Data, "À€")(1)) <> LCase(YMSG.ID) Then 'YMSG.ID là ID nick bot của bạn
MsgBox "The user " & Split(Data, "À€")(1) & " is ONLINE"
Else
MsgBox "The user " & Split(Data, "À€")(3) & " is OFFLINE"
End If
End If
End Sub
This post has been edited by NoobYahoo: Apr 30 2006, 07:53 PM