vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: sehen ob online 
Autor: Davey1234(5)
Datum: 02.02.04 16:50

So.
Nimm ein neues Projekt, binde die Winsock Control ein (siehe vorherige Nachricht) und setze sie auf die Form. Dann gibst du folgenden Code ein:

Dim strIcq As String
 
Private Sub Form_Load()
  strIcq = InputBox("Welche ICQ-Nummer soll geprüft werden?")
  Winsock1.Close
  Winsock1.LocalPort = 0
  ' Alle Verbindungen schließen
  Winsock1.Connect "wwp.icq.com", 80
  ' Mit dem Server wwp.icq.com verbinden, mit dem HTTP-Port (80)
End Sub
 
Private Sub Winsock1_Connect()
' Wir sind verbunden
  Dim strHttpRequest As String
 
  ' HTTP-Request senden, ein HTTP-Request ist die Anfrage an den Webserver, 
  ' eine Datei (zB Webseite) zu senden
  strHttpRequest = "GET /scripts/online.dll?icq=" & strIcq & "&img=1 HTTP/1.1" _
    & vbCrLf & _
    "Host: wwp.icq.com" & vbCrLf & _
    "Accept: */*" & vbCrLf & _
    "Connection: close" & vbCrLf & vbCrLf
 
  Winsock1.SendData strHttpRequest ' Ab geht unser HTTP-Request an den Server
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  On Error Resume Next
  Static lngContentLength As Long
 
  Dim strData As String
  Dim strHttpHeader As String
  Dim F As Integer
  Dim lPos As Long
 
  ' Daten empfangen
  mSockCtrl.GetData strData
 
  ' Prüfen, ob HTTP-Header enthalten
  ' wenn ja: auswerten und entfernen
  If Not bHeaderSend And Left$(strData, 5) = "HTTP/" Then
    strHttpHeader = Left$(strData, InStr(1, strData, _
      vbCrLf & vbCrLf) + 3)
 
    ' Dateigröße ermitteln
    lPos = InStr(strHttpHeader, "Content-Length: ")
    If lPos > 0 Then
      lngContentLength = Val(Mid$(strHttpHeader, lPos + 15, _
        InStr(Mid$(strHttpHeader, lPos), vbCrLf) - 1))
    End If
 
    ' Header entfernen
    strData = Mid$(strData, Len(strHttpHeader) + 1)
    bHeaderSend = True
  End If
 
  If Not bHeaderSend Then lngContentLength = 0
 
  ' Daten in Datei temporär speichern
  F = FreeFile
  Open App.Path & "\temp.gif" For Append As #F
  Print #F, strData;
  Close #F
 
  ' Fortschritt
  lngFileSize = lngFileSize + Len(strData)
End Sub
 
Private Sub Winsock1_Close()
  ' Fertig, wie groß ist die Datei?
 
  Select Case FileLen(App.Path & "\temp.gif")
  Case 475: MsgBox "ICQ #" & strIcq & " offline." ' Offline
  Case 446: MsgBox "ICQ #" & strIcq & " online." ' Offline
  Case Else: MsgBox "ICQ #" & strIcq & " unbekannt." ' Unbekannt
  End Select
  Winsock1.Close
End Sub
Hoffentlich funktioniert das, ich weiß nicht genau, da ich einen Proxyserver habe und mit diesem Code nicht ins Internet komme.

Erläuterung: ICQ hat eine URL (http://wwp.icq.com/scripts/online.dll?icq=12345678&img=1) (statt 12345678 die ICQ-Nummer). Wenn du diese aufrufst (in einem Browser) dann siehst du ein Bild, entweder rot - offline oder grün - online. (auch einmal grau, wenn die ICQ-Nummer nicht stimmt oder so). Ich lade diese Datei im Code herunter und schaue, wie groß sie ist. Da die verschiedenen Bilder (rot-grün-grau) verschiedene Dateigrößen haben, kann ich so bestimmen welches ich heruntergeladen habe.

Cu David
--------------------------------------------
ist eine geniale Erfindung

Q-lympics ist geil

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sehen ob online740Joshua02.02.04 12:50
Re: sehen ob online606Davey1234(5)02.02.04 13:49
Re: sehen ob online500Joshua02.02.04 14:20
Re: sehen ob online517Davey1234(5)02.02.04 16:26
Re: sehen ob online611Davey1234(5)02.02.04 16:50
Re: sehen ob online493Davey1234(5)02.02.04 16:55
Re: sehen ob online650Davey1234(5)02.02.04 17:18
Re: sehen ob online499Joshua03.02.04 01:41
Re: sehen ob online482Joshua03.02.04 02:16
Re: sehen ob online513Davey1234(5)03.02.04 12:02
Re: sehen ob online494Davey1234(5)03.02.04 12:14
Re: sehen ob online492Joshua03.02.04 14:20
Re: sehen ob online514Joshua04.02.04 01:35
Re: sehen ob online508max60003.02.04 21:43

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel