RS.Fritz.Manager.API 1.1.0-alpha0135

This is a prerelease version of RS.Fritz.Manager.API.
There is a newer version of this package available.
See the version list below for details.
dotnet add package RS.Fritz.Manager.API --version 1.1.0-alpha0135
                    
NuGet\Install-Package RS.Fritz.Manager.API -Version 1.1.0-alpha0135
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RS.Fritz.Manager.API" Version="1.1.0-alpha0135" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RS.Fritz.Manager.API" Version="1.1.0-alpha0135" />
                    
Directory.Packages.props
<PackageReference Include="RS.Fritz.Manager.API" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RS.Fritz.Manager.API --version 1.1.0-alpha0135
                    
#r "nuget: RS.Fritz.Manager.API, 1.1.0-alpha0135"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=RS.Fritz.Manager.API&version=1.1.0-alpha0135&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=RS.Fritz.Manager.API&version=1.1.0-alpha0135&prerelease
                    
Install as a Cake Tool

RS.Fritz.Manager

Allows FritzBox device detection, monitoring, configuring and network traffic capturing. The TR-064 implementation is using pure WCF Soap calls.

Available as a standalone Windows application (UI) and as a NuGet package (API).

For a list of implemented services check the Service implementation status

RS.Fritz.Manager.UI

A Windows .NET WPF application for x64 and ARM64.

Screenshot 2022-03-19 210434

Usage Instructions

  1. Click Discover Internet Gateway Devices
  2. Select a detected device
  3. Select a detected user
  4. Enter the selected user's password
  5. Click Login
  6. Use the Device Information tab to see device details

RS.Fritz.Manager.API

A NuGet package to manage FritzBox devices using pure WCF calls.

Usage Examples

using System.Net;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using RS.Fritz.Manager.API;

// Register the Fritz services in the dependency container using AddFritzApi()
using IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices((_, services) => services.AddFritzApi())
    .Build();

using IServiceScope serviceScope = host.Services.CreateScope();

// Search for routers and take the first one
IDeviceSearchService deviceSearchService = serviceScope.ServiceProvider.GetRequiredService<IDeviceSearchService>();
InternetGatewayDevice device = (await deviceSearchService.GetDevicesAsync()).First();

// Show the device model from UPnP data
Console.WriteLine($"Device model: {device.UPnPDescription.Value.Device.ModelDescription}");

// Initialize the device for TR-064, retrieves the security port and the users
await device.InitializeAsync();

// Provide the password for the last logged on user
string lastUsedUserName = device.Users.Single(q => q.LastUser).Name;
Console.WriteLine($"Enter password for {lastUsedUserName}:");
device.NetworkCredential = new NetworkCredential(lastUsedUserName, Console.ReadLine());

// TR-064 example; show the device uptime from the TR-064 DeviceInfo service
DeviceInfoGetInfoResponse deviceInfo = await device.DeviceInfoGetInfoAsync();
Console.WriteLine($"Device uptime: {TimeSpan.FromSeconds(deviceInfo.Uptime)}");

// Special services

// Retrieving the device users manually
IUsersService usersService = serviceScope.ServiceProvider.GetRequiredService<IUsersService>();
IEnumerable<User> users = await usersService.GetUsersAsync(device);

users.ToList().ForEach(q => Console.WriteLine($"User: {q.Name}"));

// Retrieving a list of device hosts in the network
IDeviceHostsService deviceHostsService = serviceScope.ServiceProvider.GetRequiredService<IDeviceHostsService>();
DeviceHostInfo deviceHostInfo = await deviceHostsService.GetDeviceHostsAsync(device);
deviceHostInfo.DeviceHosts.ToList().ForEach(q => Console.WriteLine($"Device host: {q.HostName}"));

// Retrieving a list of mesh hosts in the network
IDeviceMeshService deviceMeshService = serviceScope.ServiceProvider.GetRequiredService<IDeviceMeshService>();
DeviceMeshInfo deviceMeshInfo = await deviceMeshService.GetDeviceMeshAsync(device);
deviceMeshInfo.DeviceMesh.Nodes.ToList().ForEach(q => Console.WriteLine($"Mesh host: {q.DeviceName}"));

// Capture live network traffic from router to file
ICaptureControlService captureControlService = serviceScope.ServiceProvider.GetRequiredService<ICaptureControlService>();
Task.Run(() => StopCaptureAfter10SecondsAsync(device, captureControlService));
FileInfo fileInfo = await captureControlService.GetStartCaptureResponseAsync(device, "c:\\temp", "capturefile");
Console.WriteLine($"Network trace written to file: {fileInfo}");

await host.RunAsync();

static async Task StopCaptureAfter10SecondsAsync(InternetGatewayDevice device, ICaptureControlService captureControlService)
{
    await Task.Delay(10000);
    await captureControlService.GetStopCaptureResponseAsync(device);
}

TR-064 Service implementation status

WAN

  • 🔶 urn:dslforum-org:service:WANIPConnection:1
    • ✅ GetInfo
    • ✅ GetConnectionTypeInfo
    • ❌ SetConnectionType
    • ✅ GetStatusInfo
    • ✅ GetNATRSIPStatus
    • ❌ SetConnectionTrigger
    • ❌ ForceTermination
    • ❌ RequestConnection
    • ✅ X_GetDNSServers
    • ✅ GetPortMappingNumberOfEntries
    • ✅ GetGenericPortMappingEntry
    • ❌ GetSpecificPortMappingEntry
    • ❌ AddPortMapping
    • ❌ DeletePortMapping
    • ✅ GetExternalIPAddress
    • ❌ SetRouteProtocolRx
    • ❌ SetIdleDisconnectTime
  • 🔶 urn:dslforum-org:service:WANPPPConnection:1
    • ✅ GetInfo
    • ✅ GetConnectionTypeInfo
    • ❌ SetConnectionType
    • ✅ GetStatusInfo
    • ✅ GetLinkLayerMaxBitRates
    • ✅ GetUserName
    • ❌ SetUserName
    • ❌ SetPassword
    • ✅ GetNATRSIPStatus
    • ❌ SetConnectionTrigger
    • ❌ ForceTermination
    • ❌ RequestConnection
    • ✅ X_GetDNSServers
    • ✅ GetPortMappingNumberOfEntries
    • ✅ GetGenericPortMappingEntry
    • ❌ GetSpecificPortMappingEntry
    • ❌ AddPortMapping
    • ❌ DeletePortMapping
    • ✅ GetExternalIPAddress
    • ❌ SetRouteProtocolRx
    • ❌ SetIdleDisconnectTime
    • ✅ X_AVM_DE_GetAutoDisconnectTimeSpan
    • ❌ X_AVM_DE_SetAutoDisconnectTimeSpan
  • ✅ urn:dslforum-org:service:WANCommonInterfaceConfig:1
    • ✅ GetCommonLinkProperties
    • ✅ GetTotalBytesSent
    • ✅ GetTotalBytesReceived
    • ✅ GetTotalPacketsSent
    • ✅ GetTotalPacketsReceived
    • ✅ X_AVM-DE_SetWANAccessType
    • ✅ X_AVM-DE_GetOnlineMonitor
  • ✅ urn:dslforum-org:service:WANEthernetLinkConfig:1
    • ✅ GetEthernetLinkStatus
  • ✅ urn:dslforum-org:service:WANDSLInterfaceConfig:1
    • ✅ GetInfo
    • ✅ GetStatisticsTotal
    • ✅ X_AVM-DE_GetDSLDiagnoseInfo
    • ✅ X_AVM-DE_GetDSLInfo
  • 🔶 urn:dslforum-org:service:WANDSLLinkConfig:1
    • ✅ GetInfo
    • ❌ SetEnable
    • ❌ SetDSLLinkType
    • ✅ GetDSLLinkInfo
    • ❌ SetDestinationAddress
    • ✅ GetDestinationAddress
    • ❌ SetATMEncapsulation
    • ✅ GetATMEncapsulation
    • ✅ GetAutoConfig
    • ✅ GetStatistics
  • 🔶 urn:dslforum-org:service:X_AVM-DE_Speedtest:1
    • ✅ GetInfo
    • ❌ SetConfig
  • ❌ urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_MyFritz:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_HostFilter:1
  • 🔶 urn:dslforum-org:service:Layer3Forwarding:1
    • ❌ SetDefaultConnectionService
    • ✅ GetDefaultConnectionService
    • ✅ GetForwardNumberOfEntries
    • ❌ AddForwardingEntry
    • ❌ DeleteForwardingEntry
    • ❌ GetSpecificForwardingEntry
    • ✅ GetGenericForwardingEntry
    • ❌ SetForwardingEntryEnable

Telephony

  • ❌ urn:dslforum-org:service:X_AVM-DE_OnTel:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_TAM:1
  • ❌ urn:dslforum-org:service:X_VoIP:1

Home network

  • 🔶 urn:dslforum-org:service:Hosts:1
    • ✅ GetHostNumberOfEntries
    • ❌ GetSpecificHostEntry
    • ✅ GetGenericHostEntry
    • ✅ X_AVM-DE_GetChangeCounter
    • ❌ X_AVM-DE_GetAutoWakeOnLANByMACAddress
    • ❌ X_AVM-DE_SetAutoWakeOnLANByMACAddress
    • ❌ X_AVM-DE_SetHostNameByMACAddress
    • ❌ X_AVM-DE_WakeOnLANByMACAddress
    • ❌ X_AVM-DE_GetSpecificHostEntryByIp
    • ❌ X_AVM-DE_HostsCheckUpdate
    • ❌ X_AVM-DE_HostDoUpdate
    • ✅ X_AVM-DE_GetHostListPath
    • ✅ X_AVM-DE_GetMeshListPath
  • ❌ urn:dslforum-org:service:WLANConfiguration:1
  • ❌ urn:dslforum-org:service:LANHostConfigManagement:1
  • ❌ urn:dslforum-org:service:LANEthernetInterfaceConfig:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_Dect:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_Homeauto:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_Homeplug:1

Storage/NAS

  • ❌ urn:dslforum-org:service:X_AVM-DE_Storage:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_UPnP:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_Filelinks:1

System

  • ✅ urn:dslforum-org:service:DeviceInfo:1
    • ✅ GetInfo
    • ✅ SetProvisioningCode
    • ✅ GetDeviceLog
    • ✅ GetSecurityPort
  • ❌ urn:dslforum-org:service:DeviceConfig:1
  • ✅ urn:dslforum-org:service:LANConfigSecurity:1
    • ✅ GetInfo
    • ✅ X_AVM-DE_GetAnonymousLogin
    • ✅ X_AVM-DE_GetCurrentUser
    • ✅ SetConfigPassword
    • ✅ X_AVM-DE_GetUserList
  • ❌ urn:dslforum-org:service:X_AVM-DE_AppSetup:1
  • ❌ urn:dslforum-org:service:X_AVM-DE_Auth:1
  • ❌ urn:dslforum-org:service:Time:1
  • ❌ urn:dslforum-org:service:UserInterface:1
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.8.1 120 1/15/2025
2.8.0 102 1/8/2025
2.7.8 137 1/4/2025
2.7.7 122 1/1/2025
2.7.5 132 1/1/2025
2.5.1 136 12/15/2024
2.5.0-alpha0008 96 5/19/2024
2.5.0-alpha0004 135 3/22/2024
2.5.0-alpha0001 140 1/30/2024
2.5.0-alpha.15 73 12/15/2024
2.4.0 262 1/5/2024
2.4.0-alpha0090 122 1/5/2024
2.4.0-alpha0075 142 12/14/2023
2.4.0-alpha0061 147 6/23/2023
2.4.0-alpha0048 160 6/4/2023
2.4.0-alpha0036 154 5/19/2023
2.4.0-alpha0028 110 4/15/2023
2.4.0-alpha0021 134 2/21/2023
2.4.0-alpha0015 139 1/27/2023
2.4.0-alpha0010 141 1/27/2023
2.4.0-alpha0006 143 1/25/2023
2.4.0-alpha0003 133 1/25/2023
2.4.0-alpha0001 144 1/24/2023
2.3.0 229 1/24/2023
2.3.0-alpha0061 153 1/22/2023
2.3.0-alpha0049 140 1/19/2023
2.3.0-alpha0038 130 1/18/2023
2.3.0-alpha0028 169 1/16/2023
2.3.0-alpha0021 174 11/19/2022
2.3.0-alpha0015 149 10/28/2022
2.3.0-alpha0010 188 7/9/2022
2.3.0-alpha0006 172 5/11/2022
2.3.0-alpha0003 180 4/13/2022
2.3.0-alpha0001 170 4/12/2022
2.2.0 256 4/12/2022
2.2.0-alpha0131 171 4/12/2022
2.2.0-alpha0107 167 4/12/2022
2.2.0-alpha0084 168 4/8/2022
2.2.0-alpha0066 165 4/7/2022
2.2.0-alpha0050 173 4/7/2022
2.2.0-alpha0036 182 4/7/2022
2.2.0-alpha0023 167 4/6/2022
2.2.0-alpha0011 165 4/5/2022
2.2.0-alpha0003 166 4/4/2022
2.1.0 185 4/4/2022
2.1.0-alpha0316 166 4/4/2022
2.1.0-alpha0274 178 4/3/2022
2.1.0-alpha0234 179 4/1/2022
2.1.0-alpha0198 168 3/30/2022
2.1.0-alpha0168 162 3/28/2022
2.1.0-alpha0140 157 3/28/2022
2.1.0-alpha0114 164 3/28/2022
2.1.0-alpha0090 168 3/27/2022
2.1.0-alpha0068 168 3/27/2022
2.1.0-alpha0048 164 3/26/2022
2.1.0-alpha0032 164 3/25/2022
2.1.0-alpha0019 176 3/25/2022
2.1.0-alpha0008 167 3/24/2022
2.0.0 194 3/22/2022
2.0.0-beta0002 169 3/22/2022
2.0.0-beta0001 170 3/22/2022
2.0.0-alpha0011 165 3/24/2022
2.0.0-alpha0004 162 3/23/2022
1.1.0-alpha0161 172 3/22/2022
1.1.0-alpha0135 166 3/22/2022
1.1.0-alpha0111 164 3/22/2022
1.1.0-alpha0089 149 3/21/2022
1.1.0-alpha0069 163 3/21/2022
1.1.0-alpha0051 164 3/21/2022
1.1.0-alpha0036 167 3/21/2022
1.1.0-alpha0023 169 3/21/2022
1.1.0-alpha0012 164 3/20/2022
1.1.0-alpha0003 166 3/19/2022
1.1.0-alpha0001 168 3/19/2022
1.0.0 202 3/19/2022
1.0.0-beta0003 169 3/19/2022
1.0.0-beta0002 172 3/19/2022
1.0.0-beta0001 172 3/19/2022
0.2.0-alpha1222 165 3/19/2022
0.2.0-alpha1221 164 3/19/2022
0.2.0-alpha1118 162 3/19/2022
0.2.0-alpha1017 169 3/19/2022
0.2.0-alpha0926 163 3/19/2022
0.2.0-alpha0836 168 3/19/2022
0.2.0-alpha0747 167 3/18/2022
0.2.0-alpha0660 161 3/18/2022
0.2.0-alpha0574 171 3/18/2022
0.2.0-alpha0489 165 3/18/2022
0.2.0-alpha0405 178 3/18/2022
0.2.0-alpha0322 173 3/18/2022
0.2.0-alpha0240 167 3/18/2022
0.2.0-alpha0159 163 3/18/2022
0.2.0-alpha0079 169 3/17/2022
0.1.3 201 3/17/2022
0.1.3-alpha0051 179 3/17/2022
0.1.3-alpha0050 176 3/17/2022
0.1.3-alpha0049 166 3/17/2022
0.1.3-alpha0048 171 3/17/2022
0.1.3-alpha0047 174 3/16/2022
0.1.3-alpha0046 167 3/16/2022
0.1.3-alpha0045 168 3/16/2022
0.1.3-alpha.44 172 3/15/2022
0.1.3-alpha.43 168 3/14/2022
0.1.3-alpha.42 170 3/14/2022
0.1.3-alpha.41 164 3/14/2022
0.1.3-alpha.40 171 3/14/2022
0.1.3-alpha.39 161 3/14/2022
0.1.3-alpha.38 168 3/14/2022
0.1.3-alpha.37 171 3/14/2022
0.1.3-alpha.36 157 3/13/2022
0.1.3-alpha.35 172 3/13/2022
0.1.3-alpha.34 169 3/13/2022
0.1.3-alpha.33 164 3/13/2022
0.1.3-alpha.32 175 3/13/2022
0.1.3-alpha.31 163 3/13/2022
0.1.3-alpha.30 168 3/13/2022
0.1.3-alpha.29 161 3/13/2022
0.1.3-alpha.28 161 3/13/2022
0.1.3-alpha.27 163 3/13/2022
0.1.3-alpha.26 165 3/13/2022
0.1.3-alpha.8 167 3/13/2022
0.1.3-alpha.7 164 3/13/2022
0.1.3-alpha.4 172 3/13/2022
0.1.3-alpha.3 168 3/13/2022
0.1.3-alpha.2 189 3/13/2022
0.1.2 212 3/12/2022
0.1.2-alpha.15 189 3/12/2022
0.1.2-alpha.14 190 3/12/2022
0.1.2-alpha.13 183 3/12/2022
0.1.2-alpha.12 193 3/12/2022
0.1.2-alpha.11 192 3/12/2022
0.1.2-alpha.10 196 3/11/2022
0.1.2-alpha.7 190 3/11/2022
0.1.2-alpha.6 192 3/11/2022
0.1.2-alpha.2 195 3/10/2022
0.1.1 220 3/9/2022
0.1.1-alpha.10 184 3/10/2022
0.1.1-alpha.9 191 3/9/2022
0.1.1-alpha.6 194 3/9/2022
0.1.1-alpha.2 191 3/9/2022
0.1.0 205 3/7/2022
0.1.0-alpha.80 190 3/8/2022
0.1.0-alpha.79 198 3/8/2022
0.1.0-alpha.78 198 3/7/2022
0.1.0-alpha.77 192 3/6/2022
0.1.0-alpha.76 200 3/6/2022
0.1.0-alpha.75 180 3/6/2022
0.1.0-alpha.74 176 3/5/2022
0.1.0-alpha.73 193 3/5/2022
0.1.0-alpha.72 203 3/5/2022