Programmierung > Delphi/Lazarus > FRITZ!Box

Boxinfo

Die Datei jason_boxinfo.xml enthält allgemeine Informationen zur FRITZ!Box wie zum Beispiel den Namen der Box, ihre Seriennummer und Informationen zur Firmware:

Boxinfo

 

Eigenschaften

Es steht folgende Eigenschaft zur Verfügung:

  property BoxInfo: TBoxInfo;

OUT BoxInfo: Gibt die Boxinformation der Fritzbox als Record zurück.

type
  TBoxInfo = record
    Name     : String;
    HW       : String;
    Version  : String;
    Revision : String;
    Serial   : String;
    OEM      : String;
    Lang     : String;
    Annex    : String;
    Lab      : String;
    Country  : String;
    Flag     : String;
  end;

Anwendung

Die Datei kann ohne Anmeldung über den Port 80 gelesen werden. Dies geschieht bei der Erstellung der Klasse. Die Informationen werden in den Demos im OnShow des Formulars geholt und ins Formular eingetragen:

procedure TfrmMain.FormShow(Sender: TObject);
var
  aBoxInfo : TBoxInfo;
  ...
begin
  {
  *  Boxinformationen
  }
  aBoxInfo := fFritzbox.BoxInfo;
  lblBoxInfoNameValue.Caption     := aBoxInfo.Name;
  lblBoxInfoHWValue.Caption       := aBoxInfo.HW;
  lblBoxInfoVersionValue.Caption  := aBoxInfo.Version;
  lblBoxInfoRevisionValue.Caption := aBoxInfo.Revision;
  lblBoxInfoSerialValue.Caption   := aBoxInfo.Serial;
  lblBoxInfoOEMValue.Caption      := aBoxInfo.OEM;
  lblBoxInfoLangValue.Caption     := aBoxInfo.Lang;
  lblBoxInfoAnnexValue.Caption    := aBoxInfo.Annex;
  lblBoxInfoLabValue.Caption      := aBoxInfo.Lab;
  lblBoxInfoCountryValue.Caption  := aBoxInfo.Country;
  lblBoxInfoFlagValue.Caption     := aBoxInfo.Flag;
  ...
end;

Informationen

Ohne Anmeldung an der Fritzbox kann die Standarddatei http://fritz.box:80/jason_boxinfo.xml sofort als HTTP-Request abgerufen werden:

GET /jason_boxinfo.xml HTTP/1.1
Host: fritz.box:80
Accept: text/xml
Keep-Alive: 115
Connection: Keep-Alive

Die Antworten unterscheiden firmwareabhängig beim Header und der Übertragung. Zum Beispiel (v100.05.22):

HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Date: Thu, 19 Jul 2012 07:40:05 GMT
Last-Modified: Thu, 01 Jan 1970 00:00:34 GMT
Mime-Version: 1.0
 
<j:BoxInfo xmlns:j="http://jason.avm.de/updatecheck/">
  <j:Name>FRITZ!Box Fon WLAN 7320 (UI)</j:Name>
  <j:HW>172</j:HW>
  <j:Version>100.05.22</j:Version>
  <j:Revision>22574</j:Revision>
  <j:Serial>BCxxxxxxxx0D</j:Serial>
  <j:OEM>1und1</j:OEM>
  <j:Lang>de</j:Lang>
  <j:Annex>B</j:Annex>
  <j:Lab></j:Lab>
  <j:Country>049</j:Country>
  <j:Flag>crashreport</j:Flag>
</j:BoxInfo>

und (v100.06.01)

HTTP/1.1 200 OK
Cache-Control: max-age=120
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml;charset=utf-8
Date: Thu, 01 Jan 1970 00:48:21 GMT
ETag: "9FC53808C99664919"
Expires: Thu, 01 Jan 1970 00:50:21 GMT
Last-Modified: Thu, 01 Jan 1970 00:00:37 GMT
Mime-Version: 1.0
Keep-Alive: timeout=60, max=300
 
16a
 
<j:BoxInfo xmlns:j="http://jason.avm.de/updatecheck/">
  <j:Name>FRITZ!Box Fon WLAN 7320 (UI)</j:Name>
  <j:HW>172</j:HW>
  <j:Version>100.06.01</j:Version>
  <j:Revision>27093</j:Revision>
  <j:Serial>BCxxxxxxxx0D</j:Serial>
  <j:OEM>1und1</j:OEM>
  <j:Lang>de</j:Lang>
  <j:Annex>B</j:Annex>
  <j:Lab></j:Lab>
  <j:Country>049</j:Country>
  <j:Flag>crashreport</j:Flag>
</j:BoxInfo>
0

Die zweite Antwort enthält einen neuen HTTP-Header in welchem Transfer-Encoding: chunked angegeben ist. Dies bedeutet, dass die Antwort in Teilstücken erfolgt. Jedes Teilstück beginnt mit der Angabe der Länge desselben. Hier $016A und $00. Diese Angaben werden bei der Datenübernahme entfernt.

Diese Daten werden dann in den obigen Record übernommen.

 

Links

AVM Wiki: Jason_boxinfo.xml