Resource icon

FB_Serial.pl

Programmiersprache(n)
Perl
Ein kleines Skript um den Serial String einer Fritz!Box zu entschlüsseln.

Unter der Adresse http://fritz.box/cgi-bin/system_status findet man den Serial String der Fritz!Box.

Beispiel:
HTML:
<html><body>FRITZ!Box 7490-B-041308-000120-266107-376454-787902-1130680-42822-avm</body></html>
Das Skript schlüsselt den String auf in Modell, Annex, Laufzeit, Neustarts, Hashcode, Status, Firmware, Sub-Version und Branding

Skript:
Perl:
#!/usr/bin/perl

use strict;
use warnings;

use LWP::Simple;
use HTML::TokeParser;
use Getopt::Long;


my $url  = "fritz.box";
my $serial;
my $verbose;
my $help;

my $result = GetOptions ("s=s" => \$serial,  # i numeric
  "i=s"  => \$url,  # s string
  "verbose"  => \$verbose,  # flag
  "help"  => \$help);  # flag

if( $help ) {
  print "usage: $0 -i <ip>\n";
  print "\t-i <ip>\t\tFritz!Box Adresse\n";
  print "\t-s <serial>\tSerial String\n";
  print "\t--help\t\tHilfe\n";
  print "\t--verbose\tVerbose output\n";
exit;
}

if (!$serial) {
  my $content = get("http://".$url."/cgi-bin/system_status");
  my $p = HTML::TokeParser->new(\$content);
  $p->get_tag("body");
  $serial = $p->get_trimmed_text;
}



my @SerialPart=split("-",$serial);
my $num = @SerialPart;

my $Branding = $SerialPart[$num - 1];
my $Subversion = $SerialPart[$num - 2];
my $Firmware = $SerialPart[$num - 3];

my $Status = $SerialPart[$num - 4];
my $Status1 = substr($Status, 0,2);
my $Status2 = substr($Status, 2,2);
my $RunClock = substr($Status, 4,2);

my $Hashcode = $SerialPart[$num - 6]."".$SerialPart[$num - 5];

my $Zeiten = "".$SerialPart[$num - 8]."".$SerialPart[$num - 7];
my $Laufzeit = substr($Zeiten, 0,8);
my $Laufzeit_Jahre = substr($Laufzeit, 6,2);
my $Laufzeit_Monat = substr($Laufzeit, 4,2);
my $Laufzeit_Tage = substr($Laufzeit, 2,2);
my $Laufzeit_Stunden = substr($Laufzeit, 0,2);
my $Starts1 = substr($Zeiten, -4,2);
my $Starts2 = substr($Zeiten, -2);
my $Starts = $Starts1 * 32 + $Starts2;

my $Annex = $SerialPart[$num - 9];

my $Model = "";
for (my $i=$num; $i >= 10;$i--) {
$Model = $Model." ". $SerialPart[$num - $i];
}


print "Serial: $serial\n";
print "Model: ".$Model."\n";
print "Annex: ".$Annex."\n";
print "Branding: ".$Branding."\n";
print "Firmware: ".$Firmware."\n";
print "Subversion: ".$Subversion."\n";
print "Starts: ".$Starts."\n";
print "Laufzeit: ".$Laufzeit_Jahre." Jahre ".$Laufzeit_Monat." Monate ".$Laufzeit_Tage." Tage ".$Laufzeit_Stunden." Stunden \n";

print "Status: ".$Status."\n";

if ( ($Status1 % 64) == 14 ) {
print "debug.cfg nicht vorhanden.\n";
} else {
print "debug.cfg vorhanden.\n";
}

if ( $Status1 <= 64) {
print "fw_attrib modifiziert.\n";
} else {
print "fw_attrib unverändert.\n";
}

if ( $Status2 == 67 ) {
print "OEM: custom.\n";
} else {
print "OEM original.\n";
}

print "RunClock: ".$RunClock."\n";
print "Hashcode: ".$Hashcode."\n";
Aufruf:
./FB_Serial.pl -i <ip> -s <serial> -h

Ausgabe:
Code:
Serial: FRITZ!Box Fon WLAN 7390-B-010203-040506-000000-000000-147902-840522-22574-avm
Model:  FRITZ!Box Fon WLAN 7390
Annex: B
Branding: avm
Firmware: 840522
Subversion: 22574
Starts: 166
Laufzeit: 04 Jahre 03 Monate 02 Tage 01 Stunden
Status: 147902
debug.cfg nicht vorhanden.
fw_attrib modifiziert.
OEM original.
RunClock: 02
Hashcode: 000000000000
Autor
lano
First release
Last update
Bewertung
0,00 Stern(e) 0 Bewertungen

More resources from lano

Oben