Änderungen

Zur Navigation springen Zur Suche springen
K
Zeile 12: Zeile 12:     
===Lösung Programm===
 
===Lösung Programm===
Hier schonmal ein alpha-release 8-)
+
Hier schonmal ein beta-release 8-)
 
Einfach ausschneiden & auf den Router kopieren...(naja,fast...)
 
Einfach ausschneiden & auf den Router kopieren...(naja,fast...)
 
<pre>
 
<pre>
 
#!/bin/sh
 
#!/bin/sh
 
#
 
#
# version.......: infopage_05-jan-2005  
+
# version.......: infopage_06-jan-2005  
 
# author........: bastian bittorf   
 
# author........: bastian bittorf   
# contact.......: infopage.20.bastian@spamgourmet.org
+
# contact.......: infopage.20.bastian at spamgourmet dot org
 
# licence.......: GPL
 
# licence.......: GPL
# requirements..: 600kb runtime-memory
+
# requirements..: 900kb runtime-memory
 +
# tools needed..: ash,wl,busybox (awk,cat,cut,echo,grep,ipcalc,wget)
 
# tested........: fff v1.0.7
 
# tested........: fff v1.0.7
 
#
 
#
 
# This script generates helpful infos about your fff-openwrt-router
 
# This script generates helpful infos about your fff-openwrt-router
 
# Its main purpose was to avoid loading hundreds of kilobytes from
 
# Its main purpose was to avoid loading hundreds of kilobytes from
# slow longrange wireless-links only to know some unmuch infos
+
# slow longrange wireless-links only to get some infos.
# Output should be HTML,but human AND machine-readable.
+
# Output is HTML,but human AND machine-readable.
# Total data-output should not be around 1000 bytes.
+
# Total data-output should be around 1000 bytes.
 +
#
 +
# ToDo:
 +
# - determine exact hardware type from board values ("wrt54gs v1.1")
 +
# - traceroutes to all internetgateways
 +
# - localisation english,france (all in one file)
 +
# - determine runtime and memoryusage for each task
 +
# - automatically create network-topologie (SVG)
 +
# - reduce memoryusage
 +
# - speedups
 
#
 
#
# Which programs are needed to un this?
  −
# ash,wl,busybox (awk,cat,echo,grep,ipcalc,wget)
  −
#
   
# -----------------------------------------------------------------
 
# -----------------------------------------------------------------
 
#
 
#
Zeile 44: Zeile 51:     
#
 
#
# Evaluation query-string
+
# Evaluating query-string
 
# For faster access the hole infopage will be silently generated  
 
# For faster access the hole infopage will be silently generated  
 
# trough crond every 15mins. Only if you specify an url+"?l"  
 
# trough crond every 15mins. Only if you specify an url+"?l"  
 
# you get livedata, but you have to wait some seconds.   
 
# you get livedata, but you have to wait some seconds.   
 +
# If query is not "l", precalculated page is delivered.
 
#
 
#
   −
if [ "$QUERY_STRING" = "l" ]; then echo "live daten...";fi
+
if [ "$QUERY_STRING" != "l" ]; then cat /tmp/infopage.txt;exit;fi
 
  −
#
  −
# Evaluation query-string
  −
# If the clientbrowsers query is not "l" get lifedata.
  −
#
  −
 
  −
if [ "$QUERY_STRING" != "l" ]; then echo "generierte page...";fi
      
#
 
#
Zeile 264: Zeile 265:  
# is filled with (for this skript) useless infos.
 
# is filled with (for this skript) useless infos.
 
# CPU-load is given in percent. Its wrong but nicer 8-)
 
# CPU-load is given in percent. Its wrong but nicer 8-)
 +
# Does anyone need bogomips?
 
#
 
#
   Zeile 371: Zeile 373:  
# INET-gateways
 
# INET-gateways
 
# All 0.0.0.0/0-HNA4-Announced inet-gateways.
 
# All 0.0.0.0/0-HNA4-Announced inet-gateways.
# Later I want to include tracerout-outputs to every IP
+
# Sorted, best ETX-values are top.
 +
# Later I want to include traceroute-outputs to every IP
 
# and the affiliated and summarized ETX-values
 
# and the affiliated and summarized ETX-values
# traceroute 10.11.12.3 -w 3 -n 2>/dev/null | awk '{if($2=="*"){print "error";exit} else printf $2" -> " }')  
+
# Maybe i should alter the downloadtime (5sec) in
 +
# reference to ETX (better statistical method).
 
#
 
#
   −
echo "<b>INETGATES</b>"
+
echo "<b>ETX/INETGATE/SPEED</b>"
wget -O - http://127.0.0.1:8080/nodes|awk -F "<" '{
+
a=$(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>")
+
if($0=="<h2>MID entries</h2>"){
print substr($7,4)}'
+
  print "EOF"
 +
  exit}
 +
  if(substr($0,1,40)=="<tr><td>0.0.0.0</td><td>0.0.0.0</td><td>"){
 +
  z=substr($7,4)
 +
  printf z" ("
 +
  system("wget -qO /tmp/testdownload http://"z"/cgi-bin-dev-zero.bin &")       
 +
  system("sleep 5")                                                         
 +
  system("kill 2>/dev/null $(ps|grep qO|grep -v grep|cut -b 0-5)")       
 +
  system("a=$(ls -l /tmp/testdownload|cut -b 30-42);let b=a/5120;echo -n $b")
 +
  system("echo "0" >/tmp/testdownload")                                     
 +
  print "kb/s)"}}')                                                         
 +
echo $a|awk '{
 +
split($0,b)
 +
while(b[c+1]!="EOF"){
 +
  c++
 +
  while("wget -O - http://127.0.0.1:8080/routes"|getline){
 +
  split($0,r,"<td>")
 +
  z=substr(r[2],1,length(r[2])-5)
 +
  if(length(z)>0)
 +
  if(z==b[c]){
 +
    etx=substr(r[5],1,length(r[5])-5)
 +
    if(etx>99)                                                       
 +
    etx="99.99"                                                     
 +
    printf "%5.2f",etx
 +
    printf " - "
 +
    printf b[c]
 +
    printf " - "
 +
    print b[c+1]
 +
    break
 +
    }}
 +
c++
 +
close("wget -O - http://127.0.0.1:8080/routes")
 +
}}'|
 +
sort
    
#
 
#
# Neighborhood
+
# Neighbourhood
# All direct neighbors, sorted.  
+
# All direct neighbours, sorted.  
 
# Best ETX-values are bottom.
 
# Best ETX-values are bottom.
 
# ETX > 99 will be "translated" to 99.
 
# ETX > 99 will be "translated" to 99.
 
# This means "senseless".
 
# This means "senseless".
# Maybe i should also filter ETX 0.00
+
# An endless-download from each neighbour
 +
# is made for 5 seconds via wget.
 +
# Is there a better way? I you are
 +
# "unlucky" you get ~1500kb (300*5s).
 +
# Maybe i should also filter ETX 0.00 ?
 
# Maybe i should make hyperlinks for faster
 
# Maybe i should make hyperlinks for faster
# exploring some nodes. (more output!)
+
# exploring some nodes ? (more output!)
 
#
 
#
   −
echo "<b>ETX/NACHBARN</b>"
+
echo "<b>ETX/NACHBAR/SPEED</b>"
 
wget -O - http://127.0.0.1:8080/nodes|awk '{
 
wget -O - http://127.0.0.1:8080/nodes|awk '{
  if($0=="</table>")exit
+
  if($0=="</table>")
 +
  exit
 
  a++
 
  a++
 
  if(a>21){
 
  if(a>21){
 
   split($0,b,"</td><td>")
 
   split($0,b,"</td><td>")
 
   c=substr(b[8],1,4)
 
   c=substr(b[8],1,4)
   if(c>99)c="99.99"
+
   if(c>99)
 +
  c="99.99"
 
   printf "%5.2f ",c
 
   printf "%5.2f ",c
   print "- "b[2]}}'|
+
   z=b[2]
 +
  printf "- "z" - ("
 +
  system("wget -qO /tmp/testdownload http://"z"/cgi-bin-dev-zero.bin &")
 +
  system("sleep 5")
 +
  system("kill 2>/dev/null $(ps|grep qO|grep -v grep|cut -b 0-5)")
 +
  system("a=$(ls -l /tmp/testdownload|cut -b 30-42);let b=a/5120;echo -n $b")
 +
  system("echo "0" >/tmp/testdownload")
 +
  print "kb/s)"}}'|
 
  sort
 
  sort
   Zeile 423: Zeile 473:  
# HTML-endtag is not needed 8-)
 
# HTML-endtag is not needed 8-)
 
#
 
#
#
  −
   
</pre>
 
</pre>
  

Navigationsmenü