Hallo,
ich versuche derzeit, eine Anwendung ähnlich InfoFram, jedoch für ASP.NET zu erstellen. Die Fritzbox möchte ich nicht modifizieren, da ich Kabel Deutschland-Kunde bin und Ärger befürchte. Die Anwendung läuft bereits sehr gut, wenn ich aus dem lokalen Netz auf die Fritzbox (bei abeschaltetem Zugriffsschutz) zugreife. Ich hole mir die SID und verwende diese dann bei jedem Zugriff. Schwierigkeiten bekomme ich schon bei der Verwendung des Kennwortschutzes und dem Zugriff aus dem internen Netz.
Ich glaube, dass ich den MD5-Hash der Challenge richtig ermittle, der Code stammt (glaube ich) hier aus dem Forum, für die Beispieldaten von AVM passt es jedenfalls:
Den ermittelten Response-Wert übergebe ich dann an die Box:
GetURLResponse sieht so aus:
Es haut alle soweit hin, solange ich das response-Verfahren nicht benötige. Wenn ich dieses benötige, bekomme ich mit obiger Funktion einen Timeout. Die Ermittlung des Response-Wertes ist meines Erachtens richtig. Wo könnte der Fehler sonst noch hocken? Ich bin für jede Anregung dankbar.
Gruß Thorsten
ich versuche derzeit, eine Anwendung ähnlich InfoFram, jedoch für ASP.NET zu erstellen. Die Fritzbox möchte ich nicht modifizieren, da ich Kabel Deutschland-Kunde bin und Ärger befürchte. Die Anwendung läuft bereits sehr gut, wenn ich aus dem lokalen Netz auf die Fritzbox (bei abeschaltetem Zugriffsschutz) zugreife. Ich hole mir die SID und verwende diese dann bei jedem Zugriff. Schwierigkeiten bekomme ich schon bei der Verwendung des Kennwortschutzes und dem Zugriff aus dem internen Netz.
Ich glaube, dass ich den MD5-Hash der Challenge richtig ermittle, der Code stammt (glaube ich) hier aus dem Forum, für die Beispieldaten von AVM passt es jedenfalls:
Code:
Public Function MD5HashFB(ByVal outStr As String) As String
Dim data() As Byte = System.Text.Encoding.Unicode.GetBytes(outStr)
Dim md5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
outStr = Nothing
Dim tempStr As String = Nothing
Dim result As Byte() = md5.ComputeHash(data)
For i As Byte = 0 To 15
tempStr = LCase(Hex(result(i)))
outStr = outStr & tempStr
Next i
Return outStr
End Function
Code:
GetUrlResponse("?login:command/response=" & r & "&getpage=../html/de/menus/menu2.html", sid, "", "", true)
Code:
Public Shared Function GetUrlResponse(ByVal urltail As String, ByRef sid As String, ByVal username As String, ByVal password As String, ByVal r As Boolean) As String
Dim HttpRequest As WebRequest
If r = False Then
HttpRequest = WebRequest.Create(My.Settings.FBBaseURL & "?sid=" & sid & urltail)
Else
HttpRequest = WebRequest.Create(My.Settings.FBBaseURL)
HttpRequest.ContentType = "application/x-www-form-urlencoded"
HttpRequest.Method = "POST"
HttpRequest.ContentLength = urltail.Length
Dim stOut As New StreamWriter(HttpRequest.GetRequestStream(), System.Text.Encoding.ASCII)
stOut.Write(urltail)
stOut.Close()
End If
Dim IoStream As Stream = HttpRequest.GetResponse.GetResponseStream()
Dim StrRead As New System.IO.StreamReader(IoStream)
Dim Str As String = StrRead.ReadToEnd
IoStream.Dispose()
StrRead.Close()
Return Str
End Function
Gruß Thorsten
Zuletzt bearbeitet: