.titleBar { margin-bottom: 5px!important; }

FB Login vb.net

Dieses Thema im Forum "FBF-Anrufmonitor" wurde erstellt von Kruemelino, 2 Feb. 2009.

  1. Kruemelino

    Kruemelino Aktives Mitglied

    Registriert seit:
    21 Jan. 2006
    Beiträge:
    1,045
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Dipl.-Ing.
    Ort:
    Radeburg
    Hallo,

    auch auf die Gefahr hin, dass es nicht ganz hingehört.
    Der Login auf die Fritz!Box über vb.net bekomm ich nicht hin. Wenn ich den üblichen Link im Firefox eingebe:
    Code:
    http://192.168.177.1/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&login:command/password=pwd
    Dann geschieht nichts.

    Im Internet habe ich einen Code gefunden, der funktionieren soll.
    Code:
        Public Function write(ByVal Link As String, Optional ByVal data As String = "") As String
            Dim uri As New Uri(Link)
            If (uri.Scheme = uri.UriSchemeHttp) Then
                Dim request As HttpWebRequest = CType(HttpWebRequest.Create(uri), HttpWebRequest)
                request.Method = WebRequestMethods.Http.Post
                request.Timeout = 5000
                request.AllowWriteStreamBuffering = True
                request.AllowAutoRedirect = True
                request.AuthenticationLevel = Security.AuthenticationLevel.None
                request.ContentLength = data.Length
                request.ContentType = "application/x-www-form-urlencoded"
                Dim wStream As IO.Stream = request.GetRequestStream
                Dim writer As New IO.StreamWriter(wStream)
                writer.Write(data)
                writer.Close()
                Dim response As HttpWebResponse
                response = CType(request.GetResponse(), HttpWebResponse)
                Dim reader As New IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Unicode)
                Dim tmp As String = reader.ReadToEnd()
                reader.Close()
                response.Close()
                Return tmp
            End If
        End Function
    Mit dem Programm WireShark habe ich schon herausgefunden, dass das POST rausgeht. Nur erhalte ich einen TImeout, wenn ich die Antwort der FB erwarte.

    Hat jemand bereits den Login der FritzBox mit vb.net hinbekommen, und kann mir sagen was ich falsch mache?

    Kruemel
     
  2. Chatty

    Chatty Aktives Mitglied

    Registriert seit:
    13 März 2006
    Beiträge:
    1,660
    Zustimmungen:
    19
    Punkte für Erfolge:
    38
    Wenn du schon in die Leitung beißt (Wireshark), warum guckst du dann nicht einfach, was dein Browser sendet und fummelst so lange an deinem VB-Code, bis es übereinstimmt?
     
  3. Kruemelino

    Kruemelino Aktives Mitglied

    Registriert seit:
    21 Jan. 2006
    Beiträge:
    1,045
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Dipl.-Ing.
    Ort:
    Radeburg
    Danke für den Tipp, ich hab es gelößt.

    Code:
        Public Function Write(ByVal Link As String, Optional ByVal data As String = "") As String
            Dim uri As New Uri(Link)
            If (uri.Scheme = uri.UriSchemeHttp) Then
                Dim request As HttpWebRequest = CType(HttpWebRequest.Create(uri), HttpWebRequest)
                request.Method = WebRequestMethods.Http.Post
                request.Timeout = 5000
                request.ContentLength = data.Length
                request.ContentType = "application/x-www-form-urlencoded"
                'request.CachePolicy = noCache
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
                request.UserAgent = "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322)"
                Dim wStream As IO.Stream = request.GetRequestStream
                Dim writer As New IO.StreamWriter(wStream)
                writer.Write(data)
                writer.Close()
    
                Dim response As HttpWebResponse
                response = CType(request.GetResponse, HttpWebResponse)
                Dim reader As New IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Default)
                Dim tmp As String = reader.ReadToEnd()
                reader.Close()
                response.Close()
                Return tmp
            End If
            Return vbNullString
        End Function