Passwortfreie-Infoseite: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
K (→‎Geplante Funktionen: gemachtes weg)
K (→‎Lösung Programm: neue version)
Zeile 9: Zeile 9:
 
#!/bin/sh
 
#!/bin/sh
 
echo "Content-type: text/html";echo;cat<<EOF
 
echo "Content-type: text/html";echo;cat<<EOF
<HTML><TITLE>$(ifconfig br0 | awk '{ if($1=="inet") print substr($2,6) }')</TITLE><BODY><PRE><b>WLAN</b>
+
$(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 SigNoiseDIFF: $c)
+
$(a=$(wl noise | awk '{ print $3 }');b=$(wl rssi | awk '{ print $3 }');let c=b-a;echo SIGNALRAUSCHABSTAND: $c)
 
SSID: $(nvram get wl0_ssid)
 
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 }'))
+
$(echo KANAL/_real/mW/_real: $(nvram get wl0_channel)/$(wl assoc | grep Channel | awk '{ print $11 }')/$(
$(g="2";if [ "$(nvram get wl0_antdiv)" = "0" ];then g="L";fi; if [ "$(nvram get wl0_antdiv)" = "1" ];then g="R";fi
+
nvram get ff_txpwr)/$(wl txpwr | awk '{ print $3 }'))
   h="2";if [ "$(nvram get ff_txant)" = "0" ];then h="L";fi; if [ "$(nvram get ff_txant)" = "1" ];then h="R";fi
+
$(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)  
 
   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
 
$(h="BG";if [ "$(nvram get wl0_gmode)" = "0" ];then h="B";fi;if [ "$(nvram get wl0_gmode)" = "2" ];then h="G";fi
Zeile 28: Zeile 31:
 
ORT/GPSX/Y: $(nvram get ff_adm_loc)/$(nvram get gpsx)/$(nvram get gpsy)
 
ORT/GPSX/Y: $(nvram get ff_adm_loc)/$(nvram get gpsx)/$(nvram get gpsy)
 
<b>SYSTEM</b>
 
<b>SYSTEM</b>
UP: $(cat /proc/uptime | awk '{ printf "%1.1f",$1/3600;print "h" }')
+
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} }')/$(
 
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} }')
 
  ipkg status | awk '{ if(index($0,"olsrd")>1) a++; if (a>0) {b++;if (b==5) print $2;break} }')
CPU: $(cat /proc/loadavg | awk '{ print $3 }')
+
$(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>
 
<b>OLSR</b>
 
$(cat /etc/olsrd.conf | awk '{ if($1=="LinkQualityWinSize") a=$2; if($1=="HelloInterval") b=$2
 
$(cat /etc/olsrd.conf | awk '{ if($1=="LinkQualityWinSize") a=$2; if($1=="HelloInterval") b=$2
Zeile 40: Zeile 49:
 
LQ: $(nvram get ff_lqmult)
 
LQ: $(nvram get ff_lqmult)
 
PLUGIN: $(cat /etc/olsrd.conf | awk '{ if($1=="LoadPlugin") printf $2"/" }')
 
PLUGIN: $(cat /etc/olsrd.conf | awk '{ if($1=="LoadPlugin") printf $2"/" }')
<b>NACHBARN/ETX</b>
+
<b>CLIENTS</b>
$(wget -O - http://127.0.0.1:8080/nodes|awk '{if($0=="</table>")exit;a++;if(a>21){split($0,b,"</td><td>");print substr(b[8],1,length(b[8])-10),"-",b[2]}}'|sort)
+
$(cat /etc/resolv.conf | awk '{if($1=="nameserver")printf "DNSSERVER: "$2"/"}')$(
<b>WLANSCAN</b>
+
cat /etc/dnsmasq.conf|awk -F "=" '{if(index($0,"server=")>0){print $2;exit}}')
$(echo $(wl scan;wl scanresults | grep I | grep -v BSSID) | sed -e 's/SSID: /\n/g' | grep Chan)
+
$(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>
 
</HTML>
 
EOF
 
EOF

Version vom 4. Januar 2006, 11:40 Uhr

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: (Der Aktuelle Entwicklungsstand ist immer unter http://172.16.5.28/cgi-bin-info.html zu sehen)
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)