RS.Fritz.Manager.API 2.1.0-alpha0048

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 2.1.0-alpha0048                
NuGet\Install-Package RS.Fritz.Manager.API -Version 2.1.0-alpha0048                
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="2.1.0-alpha0048" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RS.Fritz.Manager.API --version 2.1.0-alpha0048                
#r "nuget: RS.Fritz.Manager.API, 2.1.0-alpha0048"                
#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.
// Install RS.Fritz.Manager.API as a Cake Addin
#addin nuget:?package=RS.Fritz.Manager.API&version=2.1.0-alpha0048&prerelease

// Install RS.Fritz.Manager.API as a Cake Tool
#tool nuget:?package=RS.Fritz.Manager.API&version=2.1.0-alpha0048&prerelease                

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.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}"));

// Retrieve a new session for use in the WebUI
IWebUiService webUiService = serviceScope.ServiceProvider.GetRequiredService<IWebUiService>();
WebUiSessionInfo webUiSessionInfo = await webUiService.LogonAsync(device);
Console.WriteLine($"Session: {webUiSessionInfo.Sid}");

// Capture live network traffic from router to file
ICaptureControlService captureControlService = serviceScope.ServiceProvider.GetRequiredService<ICaptureControlService>();
Task.Run(() => StopCaptureAfter1SecondsAsync(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 StopCaptureAfter1SecondsAsync(InternetGatewayDevice device, ICaptureControlService captureControlService)
{
    await Task.Delay(1000);
    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
    • ✅ GetInfo
    • ❌ SetDHCPServerEnable
    • ❌ SetSubnetMask
    • ✅ GetSubnetMask
    • ❌ SetIPRouter
    • ✅ GetIPRoutersList
    • ❌ SetIPInterface
    • ✅ GetAddressRange
    • ❌ SetAddressRange
    • ✅ GetIPInterfaceNumberOfEntries
    • ✅ GetDNSServers
  • 🔶 urn:dslforum-org:service:LANEthernetInterfaceConfig:1
    • ❌ SetEnable
    • ✅ GetInfo
    • ✅ GetStatistics
  • ❌ 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. 
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.5.0-alpha0008 80 5/19/2024
2.5.0-alpha0004 116 3/22/2024
2.5.0-alpha0001 118 1/30/2024
2.4.0 222 1/5/2024
2.4.0-alpha0090 102 1/5/2024
2.4.0-alpha0075 123 12/14/2023
2.4.0-alpha0061 125 6/23/2023
2.4.0-alpha0048 125 6/4/2023
2.4.0-alpha0036 122 5/19/2023
2.4.0-alpha0028 77 4/15/2023
2.4.0-alpha0021 100 2/21/2023
2.4.0-alpha0015 104 1/27/2023
2.4.0-alpha0010 104 1/27/2023
2.4.0-alpha0006 107 1/25/2023
2.4.0-alpha0003 99 1/25/2023
2.4.0-alpha0001 109 1/24/2023
2.3.0 187 1/24/2023
2.3.0-alpha0061 112 1/22/2023
2.3.0-alpha0049 99 1/19/2023
2.3.0-alpha0038 94 1/18/2023
2.3.0-alpha0028 130 1/16/2023
2.3.0-alpha0021 140 11/19/2022
2.3.0-alpha0015 112 10/28/2022
2.3.0-alpha0010 133 7/9/2022
2.3.0-alpha0006 124 5/11/2022
2.3.0-alpha0003 120 4/13/2022
2.3.0-alpha0001 120 4/12/2022
2.2.0 207 4/12/2022
2.2.0-alpha0131 121 4/12/2022
2.2.0-alpha0107 119 4/12/2022
2.2.0-alpha0084 119 4/8/2022
2.2.0-alpha0066 119 4/7/2022
2.2.0-alpha0050 127 4/7/2022
2.2.0-alpha0036 134 4/7/2022
2.2.0-alpha0023 118 4/6/2022
2.2.0-alpha0011 118 4/5/2022
2.2.0-alpha0003 118 4/4/2022
2.1.0 134 4/4/2022
2.1.0-alpha0316 115 4/4/2022
2.1.0-alpha0274 125 4/3/2022
2.1.0-alpha0234 131 4/1/2022
2.1.0-alpha0198 123 3/30/2022
2.1.0-alpha0168 117 3/28/2022
2.1.0-alpha0140 110 3/28/2022
2.1.0-alpha0114 116 3/28/2022
2.1.0-alpha0090 120 3/27/2022
2.1.0-alpha0068 115 3/27/2022
2.1.0-alpha0048 112 3/26/2022
2.1.0-alpha0032 109 3/25/2022
2.1.0-alpha0019 119 3/25/2022
2.1.0-alpha0008 116 3/24/2022
2.0.0 139 3/22/2022
2.0.0-beta0002 119 3/22/2022
2.0.0-beta0001 121 3/22/2022
2.0.0-alpha0011 113 3/24/2022
2.0.0-alpha0004 114 3/23/2022
1.1.0-alpha0161 120 3/22/2022
1.1.0-alpha0135 117 3/22/2022
1.1.0-alpha0111 113 3/22/2022
1.1.0-alpha0089 101 3/21/2022
1.1.0-alpha0069 112 3/21/2022
1.1.0-alpha0051 112 3/21/2022
1.1.0-alpha0036 117 3/21/2022
1.1.0-alpha0023 117 3/21/2022
1.1.0-alpha0012 116 3/20/2022
1.1.0-alpha0003 117 3/19/2022
1.1.0-alpha0001 118 3/19/2022
1.0.0 149 3/19/2022
1.0.0-beta0003 119 3/19/2022
1.0.0-beta0002 114 3/19/2022
1.0.0-beta0001 120 3/19/2022
0.2.0-alpha1222 115 3/19/2022
0.2.0-alpha1221 111 3/19/2022
0.2.0-alpha1118 115 3/19/2022
0.2.0-alpha1017 119 3/19/2022
0.2.0-alpha0926 115 3/19/2022
0.2.0-alpha0836 112 3/19/2022
0.2.0-alpha0747 117 3/18/2022
0.2.0-alpha0660 111 3/18/2022
0.2.0-alpha0574 111 3/18/2022
0.2.0-alpha0489 113 3/18/2022
0.2.0-alpha0405 124 3/18/2022
0.2.0-alpha0322 119 3/18/2022
0.2.0-alpha0240 117 3/18/2022
0.2.0-alpha0159 113 3/18/2022
0.2.0-alpha0079 116 3/17/2022
0.1.3 144 3/17/2022
0.1.3-alpha0051 129 3/17/2022
0.1.3-alpha0050 124 3/17/2022
0.1.3-alpha0049 119 3/17/2022
0.1.3-alpha0048 120 3/17/2022
0.1.3-alpha0047 121 3/16/2022
0.1.3-alpha0046 121 3/16/2022
0.1.3-alpha0045 119 3/16/2022
0.1.3-alpha.44 121 3/15/2022
0.1.3-alpha.43 113 3/14/2022
0.1.3-alpha.42 118 3/14/2022
0.1.3-alpha.41 116 3/14/2022
0.1.3-alpha.40 122 3/14/2022
0.1.3-alpha.39 110 3/14/2022
0.1.3-alpha.38 114 3/14/2022
0.1.3-alpha.37 119 3/14/2022
0.1.3-alpha.36 110 3/13/2022
0.1.3-alpha.35 124 3/13/2022
0.1.3-alpha.34 116 3/13/2022
0.1.3-alpha.33 113 3/13/2022
0.1.3-alpha.32 124 3/13/2022
0.1.3-alpha.31 118 3/13/2022
0.1.3-alpha.30 116 3/13/2022
0.1.3-alpha.29 113 3/13/2022
0.1.3-alpha.28 112 3/13/2022
0.1.3-alpha.27 117 3/13/2022
0.1.3-alpha.26 112 3/13/2022
0.1.3-alpha.8 120 3/13/2022
0.1.3-alpha.7 117 3/13/2022
0.1.3-alpha.4 123 3/13/2022
0.1.3-alpha.3 119 3/13/2022
0.1.3-alpha.2 139 3/13/2022
0.1.2 156 3/12/2022
0.1.2-alpha.15 144 3/12/2022
0.1.2-alpha.14 144 3/12/2022
0.1.2-alpha.13 132 3/12/2022
0.1.2-alpha.12 143 3/12/2022
0.1.2-alpha.11 141 3/12/2022
0.1.2-alpha.10 142 3/11/2022
0.1.2-alpha.7 144 3/11/2022
0.1.2-alpha.6 138 3/11/2022
0.1.2-alpha.2 146 3/10/2022
0.1.1 163 3/9/2022
0.1.1-alpha.10 136 3/10/2022
0.1.1-alpha.9 143 3/9/2022
0.1.1-alpha.6 143 3/9/2022
0.1.1-alpha.2 138 3/9/2022
0.1.0 152 3/7/2022
0.1.0-alpha.80 141 3/8/2022
0.1.0-alpha.79 149 3/8/2022
0.1.0-alpha.78 148 3/7/2022
0.1.0-alpha.77 141 3/6/2022
0.1.0-alpha.76 142 3/6/2022
0.1.0-alpha.75 130 3/6/2022
0.1.0-alpha.74 129 3/5/2022
0.1.0-alpha.73 141 3/5/2022
0.1.0-alpha.72 155 3/5/2022