Home | Kontakt | Sitemap

Start

Über mich

Kontakt

Sitemap

Lizenz

Anleitungen

DVD, miniDVD

SVCD

Audio, Audio-CD (CD-DA)

AVI

Software

Von Freunden und Bekannten

Eigene Programme

Programmierung

Delphi

Lazarus

Delphi/Lazarus

Projekte

MPEG-1/2 Video

Optische Laufwerke

Audio-CD (CDDA)

Raspberry Pi Dashcam

Verschiedenes

MPEG 2 Schnitt

Project X

VCD Easy

Hardlinks

Windows

Links

Software

Programmierung Delphi/Lazarus - FRITZ!Box Klasse - Boxinfo

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

Anwendung der Unit > Boxinfo > Geräteinformationen