Passwortfreie-Infoseite

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen

Warum

Immerwieder hat man das Problem,das scheinbar ein Router falsch eingestellt ist,aber keine Kontaktmoeglichkeit zum Besitzer existiert. Um die Einstellungen auch ohne das Passwort zu kennen mal zu ueberpruefen wird eine neue Seite auf dem Webserver angelegt

Wie

Unter /www wird auf dem Router eine Seite Namens "cgi-bin-info.html" angelegt. Wegen der besseren Uebersichtlichkeit, der einfacheren maschinellen Verarbeitung (Automatische Nodekarte!) und der Kuerze wird alles als reintext erzeugt (fast ohne HTML-Codes).

Lösung Programm

#!/bin/sh
echo "Content-type: text/html";echo;cat<<EOF
$(wl scan)<HTML><TITLE>$(nvram get wifi_ipaddr)/$(nvram get lan_ipaddr)</TITLE><BODY><PRE><b>WLAN</b>
$(a=$(wl noise | awk '{ print $3 }');b=$(wl rssi | awk '{ print $3 }');let c=b-a;echo SIGNALRAUSCHABSTAND: $c)
SSID: $(nvram get wl0_ssid)
$(echo KANAL/_real/mW/_real: $(nvram get wl0_channel)/$(wl assoc | grep Channel | awk '{ print $11 }')/$(
 nvram get ff_txpwr)/$(wl txpwr | awk '{ print $3 }'))
$(g="2";if [ "$(nvram get wl0_antdiv)" = "0" ];then g="L";fi
 if [ "$(nvram get wl0_antdiv)" = "1" ];then g="R";fi
  h="2";if [ "$(nvram get ff_txant)" = "0" ];then h="L";fi
 if [ "$(nvram get ff_txant)" = "1" ];then h="R";fi
  echo Empf/SendANT: $g/$h) 
$(h="BG";if [ "$(nvram get wl0_gmode)" = "0" ];then h="B";fi;if [ "$(nvram get wl0_gmode)" = "2" ];then h="G";fi
  echo MODE/_real: $h/$(if [ "$(wl assoc | grep "Supported" | awk '{ printf $15 }')" = "54" ]; then echo "G";else echo "B";fi))                                  
BASERATE: $(nvram get wl0_rateset)
RATE/_real: $(nvram get wl0_rate)/$(wl rate | awk '{ print $3 }')
CTS/BURST: $(nvram get wl0_gmode_protection)/$(nvram get wl0_frameburst)
FRAG/RTS/MTU: $(nvram get wl0_frag)/$(nvram get wl0_rts)/$(nvram get ff_mtu)
WEP/_real: $(nvram get wl0_wep)/$(if [ "$(wl assoc | grep WEP | awk '{ print $5 }')" = "WEP" ]; then echo "on";else echo "off";fi)
<b>KONTAKT</b>
MAIL: $(nvram get ff_adm_mail)
FON: $(nvram get ff_adm_tel)
ORT/GPSX/Y: $(nvram get ff_adm_loc)/$(nvram get gpsx)/$(nvram get gpsy)
<b>SYSTEM</b>
UP: $(cat /proc/uptime | awk '{ printf "%1.1f",$1/3600 }')h
vFFF/OLSRd: $(ipkg status | awk '{ if(index($0,"webadmin")>1) a++; if (a>0) {b++;if (b==4) print $2;break} }')/$(
 ipkg status | awk '{ if(index($0,"olsrd")>1) a++; if (a>0) {b++;if (b==5) print $2;break} }')
$(cat /tmp/dmesg.txt|awk '{ if($1=="CPU:"){printf $0;exit}}')$(cat /proc/loadavg|awk '{printf "/";printf "%3.0f",$3*100}';
 cat /proc/cpuinfo|awk '{ if($1=="cpu")printf "%% / "$4"-"$5;if($1=="BogoMIPS"){print " / "$3"bmips";exit}}')
BOARDrev/type/num/flags/2: $(nvram get boardrev|awk '{printf $0"/"}';
 nvram get boardtype|awk '{printf $0"/"}';
 nvram get boardnum|awk '{printf $0"/"}'; 
 nvram get boardflags|awk '{printf $0"/"}'; 
 nvram get boardflags2|awk '{printf $0}')
<b>OLSR</b>
$(cat /etc/olsrd.conf | awk '{ if($1=="LinkQualityWinSize") a=$2; if($1=="HelloInterval") b=$2
 if($1=="HelloValidityTime") {c=$2;d="!=";if (c-(a*b)==0) d="=";print "HEIn*WSize=HEVal?:",b" x "a,d,c;exit} }')
FILTER: $(nvram get ff_ign)
DHCP: $(nvram get ff_wldhcp)
HNA4: $(nvram get ff_hna4)
LQ: $(nvram get ff_lqmult)
PLUGIN: $(cat /etc/olsrd.conf | awk '{ if($1=="LoadPlugin") printf $2"/" }')
<b>CLIENTS</b>
$(cat /etc/resolv.conf | awk '{if($1=="nameserver")printf "DNSSERVER: "$2"/"}')$(
 cat /etc/dnsmasq.conf|awk -F "=" '{if(index($0,"server=")>0){print $2;exit}}')
$(cat /var/run/dhcp.leases | awk '{print $2,$3,$4}')
<b>INETGATES</b>
$(wget -O - http://127.0.0.1:8080/nodes|awk -F "<" '{if(substr($0,1,40)=="<tr><td>0.0.0.0</td><td>0.0.0.0</td><td>")print substr($7,4)}')
<b>ETX/NACHBARN</b>
$(wget -O - http://127.0.0.1:8080/nodes|awk '{if($0=="</table>")exit;a++;if(a>21){split($0,b,"</td><td>");
 c=substr(b[8],1,length(b[8])-10);if(c>99)c="99.99";printf "%5.2f ",c;print "-",b[2]}}'|sort)
<b>SIGNALRAUSCHABSTAND/SSID/KANAL</b>
$(wl scanresults|awk '{if($1=="SSID:")d=$2;a=index($0,"RSSI:");if(a>0){b=substr($0,a+6,3);c=substr($0,a+21,3);e=b-c;
 if(e<0)e=0;printf"%2.0f ",e;print d,substr($0,a+38)} }'|sort)
</HTML>
EOF

Lösung Browserausgabe

Die Ausgabe im Browser sieht dann so aus:
Infoseite-pwfrei.png

Geplante Funktionen

  • IPs und Netzmasken auflisten
  • alle wege ins inet zeigen + ETX-Gesamtwerte dafuer aufsummieren
  • .ipk machen

Probleme

  • kurzzeitig hoher Speicherbedarf waehrend der Laufzeit. ~ 910kb
    • daher Probleme auf dem SE505,WAP54g und Konsorten mit nur 8mb RAM
    • Problem muss behoben werden

Kontakt

Wer machts? Der hier: fries43 16:07, 2. Jan 2006 (CET)