Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Download:

Datei 1: App.config
Datei 2: App.xaml
Datei 3: App.xaml.cs
Datei 4: Fritzbox_Tools.csproj
Datei 5: MainWindow.xaml
Datei 6: MainWindow.xaml.cs
Datei 7: Fritzbox_Tools.zip

Fritzbox: WPF Tool zum Login in AVM Fritz.box per Code

 

 

Ich habe mir hier ein kleines Programm als Vorlage geschrieben in WPF, C#

Mit welchem man sich per Windows 10 Desktop Programm in die Fritzbox anmelden kann

 

 

Das Programm ist hier zum Download und die WPF-XAML Datei und die Code-behind .cs Datei in C# liegen dabei.

Wie man sieht kann man ein Passwort passend zu eurem Routern eingeben und ihr könnt damit prüfen, ob ihr wirklich in die Fritzbox rein kommt.

 

Die Ausgabe ist als HTML Code in der Mitte angezeigt. Wer ein wenig HTML kann, erkennt gleich ob er in der Seite ist.

Ansonsten kommt ein Fehler.

 

 

Die beiliegenden Dateien:

Code-Behind Seite MainWindow.xaml.cs in C#

Enthält den kompletten zugriffs-Code auf die Fritzbox (ab Betriebssystem Fritzbox OS 5.05)

 

Code MainWindow.xaml.cs:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

 

using System.IO;                    //StreamReader

using System.Net;                   //Http

using System.Security.Cryptography; //Hash Md5

using System.Xml.Linq;              //XDocument

 

namespace Fritzbox_Tools

{

    /// <summary>

    /// Interaktionslogik für MainWindow.xaml

    /// </summary>

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }

 

        private void btnStart_Click(object sender, RoutedEventArgs e)

        {

            Test();

        }

 

        public void Test()

        {

            string benutzername = "xxxxxxxx";

            string kennwort =tbxPassword.Text ;

            // SessionID ermitteln

            string sid = GetSessionId(benutzername, kennwort);

            string seite = SeiteEinlesen(@"http://fritz.box/home/home.lua", sid);

 

 

            tbxLog.Text = seite;

        }

 

        public string SeiteEinlesen(string url, string sid)

        {

            Uri uri = new Uri(url + "?sid=" + sid);

            HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;

            HttpWebResponse response = request.GetResponse() as HttpWebResponse;

            StreamReader reader = new StreamReader(response.GetResponseStream());

            string str = reader.ReadToEnd();

            return str;

        }

 

        public string GetSessionId(string benutzername, string kennwort)

        {

            XDocument doc = XDocument.Load(@"http://fritz.box/login_sid.lua");

            string sid = GetValue(doc, "SID");

            if (sid == "0000000000000000")

            {

                string challenge = GetValue(doc, "Challenge");

                string uri = @"http://fritz.box/login_sid.lua?username=" +

               benutzername + @"&response=" + GetResponse(challenge, kennwort);

                doc = XDocument.Load(uri);

                sid = GetValue(doc, "SID");

            }

            return sid;

        }

 

        public string GetResponse(string challenge, string kennwort)

        {

            return challenge + "-" + GetMD5Hash(challenge + "-" + kennwort);

        }

 

        public string GetMD5Hash(string input)

        {

            MD5 md5Hasher = MD5.Create();

            byte[] data =

           md5Hasher.ComputeHash(Encoding.Unicode.GetBytes(input));

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < data.Length; i++)

            {

                sb.Append(data[i].ToString("x2"));

            }

            return sb.ToString();

        }

 

        public string GetValue(XDocument doc, string name)

        {

            XElement info = doc.FirstNode as XElement;

            return info.Element(name).Value;

        }

 

        private void btnStart_Click_1(object sender, RoutedEventArgs e)

        {

 

        }

 

 

    }

}

 

 

Und die XAML Datei: MainWindow.xaml

Als XAML Code die MainWindow.xaml

<Window x:Class="Fritzbox_Tools.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:local="clr-namespace:Fritzbox_Tools"

        mc:Ignorable="d"

        Title="Fritzbox Tools" Height="350" Width="525">

    <Grid>

        <Grid.RowDefinitions>

            <RowDefinition Height="25*"/>

            <RowDefinition Height="284*"/>

        </Grid.RowDefinitions>

        <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  >

            <Button x:Name="btnStart" Grid.Row="0" Content="Start" Width="75"  Click="btnStart_Click"/>

            <Label x:Name="lblPassword" Grid.Row="0" Content="Passwort:" VerticalAlignment="Stretch"  Margin="10,0,0,0"/>

            <TextBox x:Name="tbxPassword" Grid.Row="0" TextWrapping="NoWrap"  Text="DemoPass" VerticalAlignment="Stretch" Width="100" VerticalContentAlignment="Center"  />

        </StackPanel>

        <ScrollViewer Grid.Row="1" >

            <TextBlock x:Name="tbxLog" TextWrapping="Wrap" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch"   ></TextBlock>

        </ScrollViewer>

    </Grid>

</Window>

 

 

Mobile
»
Kein Internet in Nürtingen
»
Fritzbox: Neues Betriebssystem OS 06.51 Update
»
AVM Fritzbox: Telefonbuch per s cript lesen
»
AVM Fritzbox: Kennwort ändern
»
Fritzbox: 5 GHz oder nur 2,4 GHz SSID
»
Fritzbox, Wlan: Filme im Wlan am Fernseher oder PC anschauen
»
Fritzbox: Abfrage per TR64 Prokokoll Notizen
»
Fritzbox App Code: Windows 10 App Einstiegscode zum Login in Fritzbox
»
Fritzbox: Desktop Tool zum Login in AVM Fritz.box per Code, WPF, Download
»
UWP: Fritzbox Anleitung für Entwickler zum Login und SessionID

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de