Box-Info von trunk

Und nun? Ich sagte doch, wenn man schon Namen ausgibt, dann alle und nicht etwa das letzte oder das erste Wort. Danach packt jemand noch den für ihn richtigen Namen in die Mitte und wundert sich, warum es nicht angezeigt wird.

MfG
 
Ich erlaube mir ein Doppelposting, damit es gelesen wird und ich möglichst bald eine Rückmeldung euerseits bekomme.
Zunächst nur ein Bildchen als Diskussionsgrundlage (s. unten), Patches und sonstiges kommt nachher, wenn der Vorschlag gefällt und so angenommen werden kann.
1. Ich hatte meine Sachen da doch gelassen und etwas erweitert. Zur öffentlichen IP wird der Name aus /tmp/ddnsstat.txt gezeigt. Es wird einmalig gepingt, ob die Adresse sich pingen lässt und ob sie mit der aus get_ip zuvor ermittelten übereinstimmt. Ist es der Fall, so wird der Name angezeigt. Fehlt die öffentliche IP aus dem get_ip, so wird die Zeile gar nicht angezeigt.
2. Diese alte Geschichte inklusive Urlader-IP habe ich zum Überbegriff "Netze" zusammengefasst. Über den Namen kann man noch sprechen...
3. Die Sachen von Gero013 habe ich etwas umformatiert und unter dem Sammelbegriff "Schnittstellen" ausgegeben. Namen sind nach hinten gewandert und es ist angedacht auch mehrfache Namen anzeigen zu können.

Gibt es zum Layout allgemein was zu meckern, oder kann man das als Kompromissgrundlage ansehen?

MfG
 

Anhänge

  • boxinfo_vorschlag_layout.jpg
    boxinfo_vorschlag_layout.jpg
    28.5 KB · Aufrufe: 21
Mir gefällts. Wie siehts mit der Zeit aus bis die Seite geladen ist?

MfG Oliver
 
Mir gefällt es auch.
Was wird angezeigt wenn die Datei "/tmp/ddnsstat.txt" auf der Box nicht vorhanden ist?
 
Die pingerei wird sicherlich etwas Zeit in Anspruch nehmen und sed/awk-Sachen habe ich mir auch noch nicht genauer betrachtet.
In der jetzigen fassung sieht es so aus
7270 nicht am DSL (ping wird nicht durchgeführt):
Code:
/var/mod/root # time /usr/lib/cgi-bin/mod/box_info.cgi > /dev/null
...
real    0m 0.28s
user    0m 0.10s
sys     0m 0.11s
/var/mod/root # time /mod/usr/lib/cgi-bin/mod/box_info.cgi > /dev/null
...
real    0m 0.46s
user    0m 0.14s
sys     0m 0.26s
7170 mit DSL (hier wird ping durchgeführt):
Code:
/var/mod/root # time /mod/usr/lib/cgi-bin/mod/box_info.cgi > /dev/null
...
real    0m 1.26s
user    0m 0.46s
sys     0m 0.72s
/var/mod/root # time /usr/lib/cgi-bin/mod/box_info.cgi > /dev/null
....
real    0m 0.75s
user    0m 0.20s
sys     0m 0.40s
Kleinere Zeiten sind jeweils ganz alte Variante aus dem trunk. Größere Zeiten sind für Gero013 + meine Sachen.

@sf3978: Wenn die Datei nicht da ist, wird nichts angezeigt (leer). Das Gute an der Datei ist: Man kann sie auch mit anderen DDNS-Clients auch bedienen, sie liegt ja im RAM...

MfG
 
[...]
Das Gute an der Datei ist: Man kann sie auch mit anderen DDNS-Clients auch bedienen, sie liegt ja im RAM...

Auf meiner Box gibt es diese Datei nicht. Was meinst Du mit "Man kann sie auch mit anderen DDNS-Clients auch bedienen, ..."?
 
Wird dann aber ohne konfigurierte dyndns-Sachen nicht laufen mit der ddnsstats, oder seh ich das falsch?
 
Die datei wird vom AVM ddns-Klient bedient und wird anscheinend von dem neu angelegt, sobald die Adresse erfolgreich aktualisiert wurde. Sie sieht wie folgt aus:
Code:
/var/mod/root # cat /tmp/ddnsstat.txt
5 12345 deine.dyndns.net
Wobei 5 anscheinend für den erfolgreichen Status steht. Ich meine in der Doku zu dyndns was darüber gesehen zu haben. 1234 ist irgendeine komische Zahl, deren Bedeutung ich bis jetzt nicht kenne. Evtl. Zeit zwischen Reconnects oder was Ähnliches.
Mit den anderen DDNS-Klienten meinte ich den Einwand von Gero013, dass er die Sachen von AVM nicht zu nutzen scheint. In diesem Fall könnten die andere Clients dann die besagte Datei beschreiben. Ich vermute sehr stark, dass AVM-WebIF sich aus dieser Datei bedient. Wäre also doppelter Gewinn.

Aber zurück zu meiner Frage. Soll ich noch weiter an der Sache optimieren, oder wollt ihr lieber bei Gero's Version bleiben und diese dyndns-ping-Geschichte komplett vergessen? Sonst würde ich es nachher zum testen posten, wenn ich halbwegs fertig bin und ihr misst die Ladezeiten selbst und entscheidet, ob es denn euch Wert ist zu pingen oder eben nicht.
@Silent-Tears: Es wird alles laufen. Wenn die Datei nicht da ist, wird gar nicht versucht den Namen der äußeren IP zu finden. Dann steht es in der Tabelle leer. Pingen erübrigt sich also auch.

MfG
 
..., dass er die Sachen von AVM nicht zu nutzen scheint. In diesem Fall könnten die andere Clients dann die besagte Datei beschreiben. Ich vermute sehr stark, dass AVM-WebIF sich aus dieser Datei bedient. Wäre also doppelter Gewinn.[...]
Ich nutze die Sachen von AVM auch nicht und die dyndns-Clients die ich nutze, werden diese Datei nicht erstellen. Das sollte aber kein Problem sein, denn diese Datei mit dem entsprechenden Eintrag/Inhalt, kann mit der rc.custom oder mit onlinechanged-cgi erstellt werden.
 
Man kann auch die Clients patchen, dass sie diese Datei erstellen. So wild dürfte es auch nicht sein. Übergangsweise kann man sich auch mit onlinechanged bedienen.

Ich bin gerade an dem besagten grep-read-awk-Konstrukt zugange. Ich hatte versucht diese sehr interessante Idee von Gero013 mit der sequenten Abarbeitung der Ausgabe von ifconfig mit shell-Mitteln komplett in sed/grep/tr zu portieren. Das ist mir auch teilweise auf 7170 gelungen, bis ich auf meiner 7270 ankam.
Für Interessierende ist übrigens mein Konstrukt:
Code:
ifconfig | grep -A 1 -B 1 "inet addr:" | sed 's/[ \t]**Link encap:\([^ ^\t]*\).*/ \1/;s/[ \t]*inet addr:\([0-9.]*\).*/\1/;s/[ \t]*UP.*/UP/;/^--/d' | tr '\n' ' ' | sed 's/UP /UP\n/g'
Und seine Ausgabe auf einer 7170:
Code:
dsl Point-to-Point XX.XX.XX.XX UP
dsl:dsld Point-to-Point 169.254.2.1 UP
lan Ethernet 192.168.XXX.1 UP
lan:0 Ethernet 169.254.1.1 UP
lo Local 127.0.0.1 UP
Ich hatte zunächst nicht verstanden, wofür Gero013 da dieses UP braucht, mittlerweile habe ich kapiert, dass es eine Art Anhaltemarker für ihn ist. UP wird bei mir nachher rausfliegen, wenn ich es denn mit sed und co schaffe die mehrfachen read-Schleifen zu ersetzen.
Das Hauptproblem besteht jedoch in inet6-Adressen, die ich zwar nicht nutze, die allerdings bei meiner 7270 wenigstens bei Loopback-Device vorzufinden sind:
Code:
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3373 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3373 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:381197 (372.2 KiB)  TX bytes:381197 (372.2 KiB)
Wenn man es nach dem Vorschlag von Gero013 mit +1 und -1 Zeile von "inet addr:" grepen würde, bekommt man bei allen Devices mit inet6 die Zeile mit dem UP-Marker nicht zu sehen. Daher würde es irgendwann mal in die Hose gehen.
Zugegeben, inet6 gibt es noch nicht überall, wir sollen uns aber wenigstens darüber Gedanken machen.
Ich versuche eine bessere Alternative für diesen positionsabhängigen grep zu finden.

MfG
 
Man sollte die IPv6-Sachen nicht unter den Tisch kehren, denn manche nutzen diese Dinge doch schon.
 
Könnt ihr bitte folgende Ausgabe in Shell eurer Boxen testen:
Code:
ifconfig | sed -ne '/^[^ ^\t][a-z0-9:]*[ \t]*Link encap:/N/inet addr:/N/inet addr/s/[ \t]*\n[ \t]*/ /gp' | sed -e 's/ UP .*//;s/[ \t]*Link encap:\([^ ]*\).*inet addr:\([0-9.]*\)/ \1 \2/;s/[ \t]*Mask:[0-9.]*//;s/[ \t]*Bcast:[0-9.]*//;s/[ \t]*Scope:.*//;s/[ \t]*inet6 addr: / /;s/[ \t]*P-t-P:[0-9.]*//'
Es liefert auf meiner 7170 an DSL:
Code:
dsl Point-to-Point XX.XXX.XXX.XX
dsl:dsld Point-to-Point 169.254.2.1
lan Ethernet 192.168.XXX.1
lan:0 Ethernet 169.254.1.1
lo Local 127.0.0.1
Und auf meiner 7270 ohne DSL:
Code:
lan Ethernet 192.168.XXX.2
lan:0 Ethernet 169.254.1.1
lo Local 127.0.0.1 ::1/128
Wohl gemerkt, als vierter Parameter sollte IPv6-Adresse auftauchen, die bei mir leider nur bei lo vorhanden ist.

Interessant wäre zu wissen, ob auch die IPv6-Behandlung klappt (ich kann es mangels IPv6 nicht testen) und ob ich mit diesem komplizierten sed-Konstrukt alle "Schmutzeffekte" sauber rausgefischt hatte.

Wenn wir genügend Rückmeldungen haben, kann man weiter reden.

MfG
 
Code:
dsl Point-to-Point 169.254.2.1
eth0:1 Ethernet 192.168.xxx.xxx
lan Ethernet 192.168.xxx.yyy
lan:0 Ethernet 169.254.1.1
lo Local 127.0.0.1
tun1 UNSPEC 10.x.y.x
 
IPv6 wird mit der nächsten Version für 7240 und 7270 Standard, daher sollte das auf alle Fälle beachtet werden.

MfG Oliver
 
On-The-Box-Version

@Oliver: Beachten tue ich es schon, aber erstmal nicht auswerten. Kannst du bitte auch meine sed-Zeile von oben testen, Oliver? Du hast doch drei unterschiedliche Boxen. Mittlerweile habe ich es in meine Testversion verbaut und awk-Konstrukt durch meine eigene sed-Version ersetzt.
Wenn ich es noch schaffe, poste ich eine on-the-box-Version zum testen im RAM (ohne zu flashen).


Edit: Ich poste doch meine on-the-box-Version und das Bildchen dazu. Um diese Version auf der Box zum laufen zu bringen, sollte man Symlink /mod/usr/lib/cgi-bin/mod löschen:
Code:
rm /var/mod/usr/lib/cgi-bin/mod
Anstatt Symlink den kompletten Inhalt vom Verszeichnis ins RAM packen:
Code:
cp -R /usr/lib/cgi-bin/mod /var/mod/usr/lib/cgi-bin/
Danach befindet sich die Datei box_info.cgi im RAM:
Code:
/var/mod/root # ls -l /var/mod/usr/lib/cgi-bin/mod
-rwxr-xr-x    1 root     root          5118 Jun 27 22:52 box_info.cgi
-rwxr-xr-x    1 root     root           151 May  2 16:22 do_download_config.cgi
-rwxr-xr-x    1 root     root          4317 May  2 17:01 info.cgi
-rwxr-xr-x    1 root     root           397 May  2 16:22 logs.cgi
-rwxr-xr-x    1 root     root          3525 May  2 17:01 mounted.cgi
und kann mit meiner on-the-box-Version ersetzt werden. Dafür die gz-Datei entpacken und mit SCP oder ähnlichem auf die Box bringen.

Nach dem Reboot der Box ist danach alles beim alten...

Edit2: Ich hatte mir erlaubt, auch die 169-Adressen neben den 127-Adressen auszufiltern. Sie hatten sonst keine Aussage für mich in diesem Kontext. Über diese Filterung kann man allerdings diskutieren.
Die on-the-box-Version ist natürlich nur einsprachig...


MfG
 

Anhänge

  • boxinfo_testversion.jpg
    boxinfo_testversion.jpg
    26 KB · Aufrufe: 13
  • box_info.cgi.gz
    1.9 KB · Aufrufe: 1
Zuletzt bearbeitet:
box_info.cgi Version 29.06.2010

Anbei ist meine heutige Version. Der wesentliche Unterschied zu gestern besteht darin, dass ich eine neue Quelle für die Taktfrequenzen gefunden hatte und werte jetzt die AVM-Information so, wie sie in /proc/clocks steht (s. Bild).
Neben der aktualisierten on-the-box-Version (Verwendung s. oben) habe ich diesmal auch einen Patch gegen den Trunk erstellt. Also, wer es fest reingeflasht testen will, dem steht jetzt auch nichts in Wege.

Die Rückmeldungen sind erwünscht und wichtig. Denn mein sed-Konstrukt dürfte zwar IPv6 korrekt behandeln (aber noch nicht ausgeben!), jedoch ist da alles ziemlich zusammengeworfen und filtert ziemlich viele Sachen fast "per hand". Es könnte passieren, dass nicht alle Boxen damit klar kommen und die Anzeige bei einigen Boxen daneben geraten wird.

Eine Überaschung hatte ich heute allerdings erlebt, als ich neue Labor geflasht hatte (ich schleppe jetzt diese Labors immer mit): Plötzlich tauchte ein "guest"-IF aus dem Nichts. Ich kann hoch und heilig schwören: Gestern war es mit der Labor davor noch nicht da! Kann jemand damit was anfangen?

Außerdem bitte nicht wundern, dass im aktuellen Bild die Öffentliche Adresse fehlt. Das ist meine Zweitbox für Experimente. Da gibt es kein DSL, daher wird es ausgeblendet.

MfG
 

Anhänge

  • boxinfo_20100629.jpg
    boxinfo_20100629.jpg
    60.6 KB · Aufrufe: 24
  • box_info_cgi_20100629_on_the_box.gz
    1.9 KB · Aufrufe: 4
  • box_info_20100629.patch.bz2
    1.7 KB · Aufrufe: 3
Dieses guest-Netzwerk ist irgendwie in den Labors vorhanden. Gab schon einige Postings dazu.
 
Das ist das Interface für ein zweites "Gast"-WLAN.

MfG Oliver
 

Anhänge

  • 7270_ata.png
    7270_ata.png
    22.5 KB · Aufrufe: 14
Oliver, warum zeigt er bei dir kein DSL-Interface an und was für eine Netzwerkkonfiguration hast du überhaupt in diesem Fall in deinem Bild? Ist das Kabelmodem oder was ist das überhaupt? Warum taucht die öffentliche IP gar nicht unter Interfaces auf?
Bei meiner Zweitbox waren die Namenserver anscheinend nicht korrekt konfiguriert. Daher schlug bei mir get_ip anscheinend fehl. Sonst dürfte die get_ip in solchen Fällen die externe Adresse der Hauptbox zeigen. Ob es gut ist, kann man überlegen.
@all: Was machen wir mit dieser Geschichte weiter? Können das noch 2-3 Freiwillige testen? Insbesonders würden mich die IPv6-Freunde interessieren. Zwar werden deren Adressen nicht dargestellt, mich würde dennoch interessieren, ob die Interfaces wenigstens korrekt verarbeitet werden.

MfG
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.