Statistiken sind toll. Wäre fein, wenn man auch der FRITZ!Box einiges entlocken könnte. Das Zauberwort lautet TR64 und ist über HTTP/SOAP im LAN erreichbar. Hierzu müssen in den Netzwerkeinstellungen die Anwendungszugriffe und Statusinformationen aktiv sein.
Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/01/fbox-300×137.png
Allgemeine Infos wie die aktuell verwendete Bandbreite lassen sich von jedem Abrufen, andere Bereiche konnte ich bisher nur über /control abrufen – hier werden die Zugangsdaten eines FB-Nutzers benötigt.
Über das Protokoll lassen sich neben IP, Verbindungsstatus und Bandbreiten auch erweiterte Infos wie Dämpfungen & Co aufzeichnen. Technisch kann man sogar Aktionen wie einen Reconnect oder komplette Konfigurationsänderungen durchführen, das würde hier jedoch den Rahmen sprengen. Einige Infos gibt es in der Wiki von WeHaveMoreFun oder das ausgiebigere Perl-Modul von FHem.
Hier mal mein Notizzettel, welcher eine Abfrage per PHP erlaubt:
<?php function FbSOAP($url, $urn, $method='GetInfo', $user='', $pass='') { $parameter = array( 'location' => $url, 'uri' => $urn, 'noroot' => True ); if($user != '') $parameter['login'] = $user; if($pass != '') $parameter['password'] = $pass; $client = new SoapClient( null, $parameter ); $status = $client->$method(); return $status; } $host = 'http://fritz.box:49000'; $user = 'nutzer'; $pass = 'geheim'; //Aktuell verwendete Bandbreite, Traffic seit Boot, DNS-Konfiguration (kein Passwort nötig) var_dump(FbSOAP($host.'/igdupnp/control/WANCommonIFC1', 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1', 'GetAddonInfos')); /* ["NewByteSendRate"]=> string(5) "20709" ["NewByteReceiveRate"]=> string(5) "21372" ["NewPacketSendRate"]=> string(1) "0" ["NewPacketReceiveRate"]=> string(1) "0" ["NewTotalBytesSent"]=> string(9) "986828869" ["NewTotalBytesReceived"]=> string(10) "1140825575" ["NewAutoDisconnectTime"]=> string(1) "0" ["NewIdleDisconnectTime"]=> string(2) "30" ["NewDNSServer1"]=> string(14) "217.237.15.1" ["NewDNSServer2"]=> string(14) "217.237.14.2" ["NewVoipDNSServer1"]=> string(14) "217.237.15.1" ["NewVoipDNSServer2"]=> string(14) "217.237.14.2" ["NewUpnpControlEnabled"]=> string(1) "0" ["NewRoutedBridgedModeBoth"]=> string(1) "1" */ //Verbindungsstatus und Typ (kein Passwort nötig) var_dump(FbSOAP($host.'/igdupnp/control/WANCommonIFC1', 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1', 'GetCommonLinkProperties')); /* Achtung - MaxBitRate ist nicht konsistent array(4) { ["NewWANAccessType"]=> string(3) "DSL" ["NewLayer1UpstreamMaxBitRate"]=> string(7) "1073000" ["NewLayer1DownstreamMaxBitRate"]=> string(7) "2304000" ["NewPhysicalLinkStatus"]=> string(2) "Up" } */ //DSL-Sync-Status, DSL-Datenraten und Dämpfungen var_dump(FbSOAP($host.'/upnp/control/wandslifconfig1', 'urn:dslforum-org:service:WANDSLInterfaceConfig:1', 'GetInfo', $user, $pass)); /* array(15) { ["NewEnable"]=> string(1) "1" ["NewStatus"]=> string(2) "Up" ["NewDataPath"]=> string(11) "Interleaved" ["NewUpstreamCurrRate"]=> string(3) "224" ["NewDownstreamCurrRate"]=> string(4) "2304" ["NewUpstreamMaxRate"]=> string(4) "1196" ["NewDownstreamMaxRate"]=> string(4) "4736" ["NewUpstreamNoiseMargin"]=> string(3) "270" ["NewDownstreamNoiseMargin"]=> string(3) "130" ["NewUpstreamAttenuation"]=> string(3) "290" ["NewDownstreamAttenuation"]=> string(3) "490" ["NewATURVendor"]=> string(8) "41564d00" ["NewATURCountry"]=> string(4) "0400" ["NewUpstreamPower"]=> string(3) "502" ["NewDownstreamPower"]=> string(3) "500" } */ //DSL-Fehlerstatistiken var_dump(FbSOAP($host.'/upnp/control/wandslifconfig1', 'urn:dslforum-org:service:WANDSLInterfaceConfig:1', 'GetStatisticsTotal', $user, $pass)); /* array(15) { ["NewReceiveBlocks"]=> string(1) "0" ["NewTransmitBlocks"]=> string(1) "0" ["NewCellDelin"]=> string(1) "0" ["NewLinkRetrain"]=> string(1) "9" ["NewInitErrors"]=> string(1) "0" ["NewInitTimeouts"]=> string(1) "0" ["NewLossOfFraming"]=> string(1) "0" ["NewErroredSecs"]=> string(3) "637" ["NewSeverelyErroredSecs"]=> string(2) "54" ["NewFECErrors"]=> string(7) "3932348" ["NewATUCFECErrors"]=> string(1) "9" ["NewHECErrors"]=> string(4) "7289" ["NewATUCHECErrors"]=> string(2) "10" ["NewCRCErrors"]=> string(4) "1635" ["NewATUCCRCErrors"]=> string(2) "13" } */ //Gerätemodell, Softwareversion, Seriennummer, Logfile var_dump(FbSOAP($host.'/upnp/control/deviceinfo', 'urn:dslforum-org:service:DeviceInfo:1', 'GetInfo', $user, $pass)); /* array(12) { ["NewManufacturerName"]=> string(3) "AVM" ["NewManufacturerOUI"]=> string(6) "00040E" ["NewModelName"]=> string(28) "FRITZ!Box Fon WLAN 7390 (UI)" ["NewDescription"]=> string(37) "FRITZ!Box Fon WLAN 7390 (UI) 84.06.51" ["NewProductClass"]=> string(9) "FRITZ!Box" ["NewSerialNumber"]=> string(12) "C02506210000" ["NewSoftwareVersion"]=> string(8) "84.06.51" ["NewHardwareVersion"]=> string(28) "FRITZ!Box Fon WLAN 7390 (UI)" ["NewSpecVersion"]=> string(3) "1.0" ["NewProvisioningCode"]=> string(0) "" ["NewUpTime"]=> string(7) "2375523" ["NewDeviceLog"]=> string(15974) "03.01.17 02:32:46 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: xxxx, DNS-Server: 217.237.150.xx und 217.237.148.xx, Gateway: 87.186.225.xx, Breitband-PoP: xxx05-asr 03.01.17 02:32:46 Internetverbindung wurde getrennt. 03.01.17 02:32:43 Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen. … */ //Software-Update verfügbar? var_dump(FbSOAP($host.'/upnp/control/userif', 'urn:dslforum-org:service:UserInterface:1', 'GetInfo', $user, $pass)); /* array(9) { ["NewUpgradeAvailable"]=> string(1) "0" ["NewPasswordRequired"]=> string(1) "0" ["NewPasswordUserSelectable"]=> string(1) "1" ["NewWarrantyDate"]=> string(19) "0001-01-01T00:00:00" ["NewX_AVM-DE_Version"]=> string(0) "" ["NewX_AVM-DE_DownloadURL"]=> string(0) "" ["NewX_AVM-DE_InfoURL"]=> string(0) "" ["NewX_AVM-DE_UpdateState"]=> string(8) "NoUpdate" ["NewX_AVM-DE_LaborVersion"]=> string(0) "" } */ //WLAN-Konfiguration und Status var_dump(FbSOAP($host.'/upnp/control/wlanconfig1', 'urn:dslforum-org:service:WLANConfiguration:1', 'GetInfo', $user, $pass)); /* array(17) { ["NewEnable"]=> string(1) "0" ["NewStatus"]=> string(8) "Disabled" ["NewMaxBitRate"]=> string(4) "Auto" ["NewChannel"]=> string(2) "13" ["NewSSID"]=> string(17) "ADLERWEB-TEST" ["NewBeaconType"]=> string(3) "11i" ["NewMACAddressControlEnabled"]=> string(1) "0" ["NewStandard"]=> string(1) "n" ["NewBSSID"]=> string(17) "C0:25:06:00:00:00" ["NewBasicEncryptionModes"]=> string(4) "None" ["NewBasicAuthenticationMode"]=> string(4) "None" ["NewMaxCharsSSID"]=> string(2) "32" ["NewMinCharsSSID"]=> string(1) "1" ["NewAllowedCharsSSID"]=> string(95) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~" ["NewMinCharsPSK"]=> string(2) "64" ["NewMaxCharsPSK"]=> string(2) "64" ["NewAllowedCharsPSK"]=> string(22) "0123456789ABCDEFabcdef" } */ //DSL-Status und Konfiguration var_dump(FbSOAP($host.'/upnp/control/wandsllinkconfig1', 'urn:dslforum-org:service:WANDSLLinkConfig:1', 'GetInfo', $user, $pass)); /* array(9) { ["NewEnable"]=> string(1) "1" ["NewLinkStatus"]=> string(2) "Up" ["NewLinkType"]=> string(5) "PPPoE" ["NewDestinationAddress"]=> string(9) "PVC: 1/32" ["NewATMEncapsulation"]=> string(3) "LLC" ["NewAutoConfig"]=> string(1) "0" ["NewATMQoS"]=> string(3) "UBR" ["NewATMPeakCellRate"]=> string(1) "0" ["NewATMSustainableCellRate"]=> string(1) "0" } */ //DSL-Statistiken var_dump(FbSOAP($host.'/upnp/control/wandsllinkconfig1', 'urn:dslforum-org:service:WANDSLLinkConfig:1', 'GetStatistics', $user, $pass)); /* array(4) { ["NewATMTransmittedBlocks"]=> string(1) "0" ["NewATMReceivedBlocks"]=> string(1) "0" ["NewAAL5CRCErrors"]=> string(1) "0" ["NewATMCRCErrors"]=> string(1) "0" } */ //PPP-Status (incl. externer IP!) var_dump(FbSOAP($host.'/upnp/control/wanpppconn1', 'urn:dslforum-org:service:WANPPPConnection:1', 'GetInfo', $user, $pass)); /* BitRate auch hier nicht nachvollziehbar array(31) { ["NewEnable"]=> string(1) "1" ["NewConnectionStatus"]=> string(9) "Connected" ["NewPossibleConnectionTypes"]=> string(21) "IP_Routed, IP_Bridged" ["NewConnectionType"]=> string(9) "IP_Routed" ["NewName"]=> string(8) "internet" ["NewUptime"]=> string(5) "57428" ["NewUpstreamMaxBitRate"]=> string(7) "1083169" ["NewDownstreamMaxBitRate"]=> string(7) "4289207" ["NewLastConnectionError"]=> string(10) "ERROR_NONE" ["NewIdleDisconnectTime"]=> string(1) "0" ["NewRSIPAvailable"]=> string(1) "0" ["NewUserName"]=> string(40) "deineid@t-online.de" ["NewNATEnabled"]=> string(1) "1" ["NewExternalIPAddress"]=> string(13) "91.35.130.0" ["NewDNSServers"]=> string(30) "217.237.150.0, 217.237.148.0" ["NewMACAddress"]=> string(17) "C0:25:06:00:00:00" ["NewConnectionTrigger"]=> string(8) "AlwaysOn" ["NewLastAuthErrorInfo"]=> string(0) "" ["NewMaxCharsUsername"]=> string(3) "128" ["NewMinCharsUsername"]=> string(1) "3" ["NewAllowedCharsUsername"]=> string(87) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._@()#/%[]{}*+§$&=?!:;," ["NewMaxCharsPassword"]=> string(2) "64" ["NewMinCharsPassword"]=> string(1) "3" ["NewAllowedCharsPassword"]=> string(87) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._@()#/%[]{}*+§$&=?!:;," ["NewTransportType"]=> string(5) "PPPoE" ["NewRouteProtocolRx"]=> string(3) "Off" ["NewPPPoEServiceName"]=> string(0) "" ["NewRemoteIPAddress"]=> string(0) "" ["NewPPPoEACName"]=> string(10) "xxxx05-asr" ["NewDNSEnabled"]=> string(1) "1" ["NewDNSOverrideAllowed"]=> string(1) "1" } */ ?>