RS.Fritz.Manager.API 2.2.0-alpha0003

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.2.0-alpha0003
                    
NuGet\Install-Package RS.Fritz.Manager.API -Version 2.2.0-alpha0003
                    
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.2.0-alpha0003" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RS.Fritz.Manager.API" Version="2.2.0-alpha0003" />
                    
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 2.2.0-alpha0003
                    
#r "nuget: RS.Fritz.Manager.API, 2.2.0-alpha0003"
                    
#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.
#:package RS.Fritz.Manager.API@2.2.0-alpha0003
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RS.Fritz.Manager.API&version=2.2.0-alpha0003&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=RS.Fritz.Manager.API&version=2.2.0-alpha0003&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.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}"));

// Retrieving a list of WLAN devices in the network
IWlanDeviceService wlanDeviceService = serviceScope.ServiceProvider.GetRequiredService<IWlanDeviceService>();
WlanDeviceInfo wlanDeviceInfo = await wlanDeviceService.GetWlanDevicesAsync(device);
wlanDeviceInfo.WlanDeviceList.Items.ToList().ForEach(q => Console.WriteLine($"WLAN device: {q.AssociatedDeviceIpAddress}"));

// 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
    • ✅ GetInfo
    • ✅ GetConnectionTypeInfo
    • ❌ SetConnectionType
    • ✅ GetStatusInfo
    • ✅ GetNATRSIPStatus
    • ❌ SetConnectionTrigger
    • ❌ ForceTermination
    • ❌ RequestConnection
    • ✅ X_GetDNSServers
    • ✅ GetPortMappingNumberOfEntries
    • ✅ GetGenericPortMappingEntry
    • ❌ GetSpecificPortMappingEntry
    • ❌ AddPortMapping
    • ❌ DeletePortMapping
    • ✅ GetExternalIPAddress
    • ❌ SetRouteProtocolRx
    • ❌ SetIdleDisconnectTime
  • 🔶 urn:dslforum-org:service:WANPPPConnection
    • ✅ 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
    • ✅ GetCommonLinkProperties
    • ✅ GetTotalBytesSent
    • ✅ GetTotalBytesReceived
    • ✅ GetTotalPacketsSent
    • ✅ GetTotalPacketsReceived
    • ✅ X_AVM-DE_SetWANAccessType
    • ✅ X_AVM-DE_GetOnlineMonitor
  • ✅ urn:dslforum-org:service:WANEthernetLinkConfig
    • ✅ GetEthernetLinkStatus
  • ✅ urn:dslforum-org:service:WANDSLInterfaceConfig
    • ✅ GetInfo
    • ✅ GetStatisticsTotal
    • ✅ X_AVM-DE_GetDSLDiagnoseInfo
    • ✅ X_AVM-DE_GetDSLInfo
  • 🔶 urn:dslforum-org:service:WANDSLLinkConfig
    • ✅ GetInfo
    • ❌ SetEnable
    • ❌ SetDSLLinkType
    • ✅ GetDSLLinkInfo
    • ❌ SetDestinationAddress
    • ✅ GetDestinationAddress
    • ❌ SetATMEncapsulation
    • ✅ GetATMEncapsulation
    • ✅ GetAutoConfig
    • ✅ GetStatistics
  • 🔶 urn:dslforum-org:service:X_AVM-DE_Speedtest
    • ✅ GetInfo
    • ❌ SetConfig
  • ❌ urn:dslforum-org:service:X_AVM-DE_RemoteAccess
  • ❌ urn:dslforum-org:service:X_AVM-DE_MyFritz
  • ❌ urn:dslforum-org:service:X_AVM-DE_HostFilter
  • 🔶 urn:dslforum-org:service:Layer3Forwarding
    • ❌ SetDefaultConnectionService
    • ✅ GetDefaultConnectionService
    • ✅ GetForwardNumberOfEntries
    • ❌ AddForwardingEntry
    • ❌ DeleteForwardingEntry
    • ❌ GetSpecificForwardingEntry
    • ✅ GetGenericForwardingEntry
    • ❌ SetForwardingEntryEnable

Telephony

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

Home network

  • 🔶 urn:dslforum-org:service:Hosts
    • ✅ 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
    • ❌ SetEnable
    • ✅ GetInfo
    • ❌ SetConfig
    • ❌ SetSecurityKeys
    • ❌ GetSecurityKeys
    • ❌ SetDefaultWEPKeyIndex
    • ❌ GetDefaultWEPKeyIndex
    • ❌ SetBasBeaconSecurityProperties
    • ✅ GetBasBeaconSecurityProperties
    • ✅ GetBSSID
    • ✅ GetSSID
    • ❌ SetSSID
    • ✅ GetBeaconType
    • ❌ SetBeaconType
    • ✅ GetChannelInfo
    • ❌ SetChannel
    • ✅ GetBeaconAdvertisement
    • ❌ SetBeaconAdvertisement
    • ✅ GetTotalAssociations
    • ❌ GetGenericAssociatedDeviceInfo
    • ❌ GetSpecificAssociatedDeviceInfo
    • ❌ X_AVM-DE_GetSpecificAssociatedDeviceInfoByIp
    • ✅ X_AVM-DE_GetWLANDeviceListPath
    • ❌ X_AVM-DE_SetStickSurfEnable
    • ✅ X_AVM-DE_GetIPTVOptimized
    • ❌ X_AVM-DE_SetIPTVOptimized
    • ✅ GetStatistics
    • ✅ GetPacketStatistics
    • ✅ X_AVM-DE_GetNightControl
    • ❌ X_SetHighFrequencyBand
    • ✅ X_AVM-DE_GetWLANHybridMode
    • ❌ X_AVM-DE_SetWLANHybridMode
    • ✅ X_AVM-DE_GetWLANExtInfo
    • ❌ X_AVM-DE_SetWLANGlobalEnable
    • ✅ X_AVM-DE_GetWPSInfo
    • ❌ X_AVM-DE_SetWPSConfig
    • ❌ X_AVM-DE_SetWPSEnable
    • ✅ X_AVM-DE_GetWLANConnectionInfo
  • 🔶 urn:dslforum-org:service:LANHostConfigManagement
    • ✅ GetInfo
    • ❌ SetDHCPServerEnable
    • ❌ SetSubnetMask
    • ✅ GetSubnetMask
    • ❌ SetIPRouter
    • ✅ GetIPRoutersList
    • ❌ SetIPInterface
    • ✅ GetAddressRange
    • ❌ SetAddressRange
    • ✅ GetIPInterfaceNumberOfEntries
    • ✅ GetDNSServers
  • 🔶 urn:dslforum-org:service:LANEthernetInterfaceConfig
    • ❌ SetEnable
    • ✅ GetInfo
    • ✅ GetStatistics
  • ❌ urn:dslforum-org:service:X_AVM-DE_Dect
  • ❌ urn:dslforum-org:service:X_AVM-DE_Homeauto
  • ❌ urn:dslforum-org:service:X_AVM-DE_Homeplug

Storage/NAS

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

System

  • ✅ urn:dslforum-org:service:DeviceInfo
    • ✅ GetInfo
    • ✅ SetProvisioningCode
    • ✅ GetDeviceLog
    • ✅ GetSecurityPort
  • ❌ urn:dslforum-org:service:DeviceConfig
  • ✅ urn:dslforum-org:service:LANConfigSecurity
    • ✅ GetInfo
    • ✅ X_AVM-DE_GetAnonymousLogin
    • ✅ X_AVM-DE_GetCurrentUser
    • ✅ SetConfigPassword
    • ✅ X_AVM-DE_GetUserList
  • ❌ urn:dslforum-org:service:X_AVM-DE_AppSetup
  • ✅ urn:dslforum-org:service:ManagementServer
    • ✅ GetInfo
    • ✅ SetManagementServerURL
    • ✅ SetManagementServerUsername
    • ✅ SetManagementServerPassword
    • ✅ SetPeriodicInform
    • ✅ SetConnectionRequestAuthentication
    • ✅ SetUpgradeManagement
    • ✅ X_SetTR069Enable
    • ✅ X_AVM-DE_GetTR069FirmwareDownloadEnabled
    • ✅ X_AVM-DE_SetTR069FirmwareDownloadEnabled
  • ❌ urn:dslforum-org:service:X_AVM-DE_Auth
  • ❌ urn:dslforum-org:service:Time
  • ❌ urn:dslforum-org:service:UserInterface
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 193 1/15/2025
2.8.0 153 1/8/2025
2.7.8 181 1/4/2025
2.7.7 177 1/1/2025
2.7.5 178 1/1/2025
2.5.1 187 12/15/2024
2.5.0-alpha0008 128 5/19/2024
2.5.0-alpha0004 166 3/22/2024
2.5.0-alpha0001 161 1/30/2024
2.5.0-alpha.15 88 12/15/2024
2.4.0 312 1/5/2024
2.4.0-alpha0090 157 1/5/2024
2.4.0-alpha0075 169 12/14/2023
2.4.0-alpha0061 207 6/23/2023
2.4.0-alpha0048 222 6/4/2023
2.4.0-alpha0036 219 5/19/2023
2.4.0-alpha0028 153 4/15/2023
2.4.0-alpha0021 178 2/21/2023
2.4.0-alpha0015 183 1/27/2023
2.4.0-alpha0010 185 1/27/2023
2.4.0-alpha0006 188 1/25/2023
2.4.0-alpha0003 177 1/25/2023
2.4.0-alpha0001 187 1/24/2023
2.3.0 275 1/24/2023
2.3.0-alpha0061 200 1/22/2023
2.3.0-alpha0049 186 1/19/2023
2.3.0-alpha0038 179 1/18/2023
2.3.0-alpha0028 233 1/16/2023
2.3.0-alpha0021 241 11/19/2022
2.3.0-alpha0015 195 10/28/2022
2.3.0-alpha0010 243 7/9/2022
2.3.0-alpha0006 227 5/11/2022
2.3.0-alpha0003 229 4/13/2022
2.3.0-alpha0001 219 4/12/2022
2.2.0 308 4/12/2022
2.2.0-alpha0131 223 4/12/2022
2.2.0-alpha0107 218 4/12/2022
2.2.0-alpha0084 216 4/8/2022
2.2.0-alpha0066 221 4/7/2022
2.2.0-alpha0050 221 4/7/2022
2.2.0-alpha0036 231 4/7/2022
2.2.0-alpha0023 217 4/6/2022
2.2.0-alpha0011 214 4/5/2022
2.2.0-alpha0003 221 4/4/2022
2.1.0 235 4/4/2022
2.1.0-alpha0316 222 4/4/2022
2.1.0-alpha0274 234 4/3/2022
2.1.0-alpha0234 229 4/1/2022
2.1.0-alpha0198 219 3/30/2022
2.1.0-alpha0168 213 3/28/2022
2.1.0-alpha0140 214 3/28/2022
2.1.0-alpha0114 218 3/28/2022
2.1.0-alpha0090 217 3/27/2022
2.1.0-alpha0068 221 3/27/2022
2.1.0-alpha0048 219 3/26/2022
2.1.0-alpha0032 215 3/25/2022
2.1.0-alpha0019 229 3/25/2022
2.1.0-alpha0008 221 3/24/2022
2.0.0 243 3/22/2022
2.0.0-beta0002 216 3/22/2022
2.0.0-beta0001 221 3/22/2022
2.0.0-alpha0011 217 3/24/2022
2.0.0-alpha0004 211 3/23/2022
1.1.0-alpha0161 222 3/22/2022
1.1.0-alpha0135 219 3/22/2022
1.1.0-alpha0111 214 3/22/2022
1.1.0-alpha0089 201 3/21/2022
1.1.0-alpha0069 215 3/21/2022
1.1.0-alpha0051 215 3/21/2022
1.1.0-alpha0036 216 3/21/2022
1.1.0-alpha0023 219 3/21/2022
1.1.0-alpha0012 214 3/20/2022
1.1.0-alpha0003 217 3/19/2022
1.1.0-alpha0001 216 3/19/2022
1.0.0 256 3/19/2022
1.0.0-beta0003 217 3/19/2022
1.0.0-beta0002 223 3/19/2022
1.0.0-beta0001 220 3/19/2022
0.2.0-alpha1222 213 3/19/2022
0.2.0-alpha1221 212 3/19/2022
0.2.0-alpha1118 214 3/19/2022
0.2.0-alpha1017 226 3/19/2022
0.2.0-alpha0926 214 3/19/2022
0.2.0-alpha0836 214 3/19/2022
0.2.0-alpha0747 214 3/18/2022
0.2.0-alpha0660 212 3/18/2022
0.2.0-alpha0574 223 3/18/2022
0.2.0-alpha0489 215 3/18/2022
0.2.0-alpha0405 229 3/18/2022
0.2.0-alpha0322 222 3/18/2022
0.2.0-alpha0240 218 3/18/2022
0.2.0-alpha0159 217 3/18/2022
0.2.0-alpha0079 222 3/17/2022
0.1.3 259 3/17/2022
0.1.3-alpha0051 235 3/17/2022
0.1.3-alpha0050 226 3/17/2022
0.1.3-alpha0049 216 3/17/2022
0.1.3-alpha0048 226 3/17/2022
0.1.3-alpha0047 227 3/16/2022
0.1.3-alpha0046 221 3/16/2022
0.1.3-alpha0045 215 3/16/2022
0.1.3-alpha.44 221 3/15/2022
0.1.3-alpha.43 218 3/14/2022
0.1.3-alpha.42 221 3/14/2022
0.1.3-alpha.41 216 3/14/2022
0.1.3-alpha.40 218 3/14/2022
0.1.3-alpha.39 209 3/14/2022
0.1.3-alpha.38 218 3/14/2022
0.1.3-alpha.37 224 3/14/2022
0.1.3-alpha.36 210 3/13/2022
0.1.3-alpha.35 222 3/13/2022
0.1.3-alpha.34 220 3/13/2022
0.1.3-alpha.33 220 3/13/2022
0.1.3-alpha.32 230 3/13/2022
0.1.3-alpha.31 212 3/13/2022
0.1.3-alpha.30 215 3/13/2022
0.1.3-alpha.29 214 3/13/2022
0.1.3-alpha.28 211 3/13/2022
0.1.3-alpha.27 217 3/13/2022
0.1.3-alpha.26 216 3/13/2022
0.1.3-alpha.8 218 3/13/2022
0.1.3-alpha.7 215 3/13/2022
0.1.3-alpha.4 222 3/13/2022
0.1.3-alpha.3 217 3/13/2022
0.1.3-alpha.2 238 3/13/2022
0.1.2 261 3/12/2022
0.1.2-alpha.15 239 3/12/2022
0.1.2-alpha.14 240 3/12/2022
0.1.2-alpha.13 231 3/12/2022
0.1.2-alpha.12 246 3/12/2022
0.1.2-alpha.11 243 3/12/2022
0.1.2-alpha.10 247 3/11/2022
0.1.2-alpha.7 242 3/11/2022
0.1.2-alpha.6 243 3/11/2022
0.1.2-alpha.2 247 3/10/2022
0.1.1 273 3/9/2022
0.1.1-alpha.10 238 3/10/2022
0.1.1-alpha.9 242 3/9/2022
0.1.1-alpha.6 244 3/9/2022
0.1.1-alpha.2 242 3/9/2022
0.1.0 261 3/7/2022
0.1.0-alpha.80 241 3/8/2022
0.1.0-alpha.79 250 3/8/2022
0.1.0-alpha.78 249 3/7/2022
0.1.0-alpha.77 245 3/6/2022
0.1.0-alpha.76 250 3/6/2022
0.1.0-alpha.75 227 3/6/2022
0.1.0-alpha.74 229 3/5/2022
0.1.0-alpha.73 245 3/5/2022
0.1.0-alpha.72 252 3/5/2022