Προς το περιεχόμενο

getdslinfo - εμφάνιση κατάστασης γραμμής xDSL


dovecotDev

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
             _      _     _ _        __       
   __ _  ___| |_ __| |___| (_)_ __  / _| ___  
  / _` |/ _ \ __/ _` / __| | | '_ \| |_ / _ \ 
 | (_| |  __/ || (_| \__ \ | | | | |  _| (_) |
  \__, |\___|\__\__,_|___/_|_|_| |_|_|  \___/ 
  |___/                       

Καλησπέρα,

Το getdslinfo είναι ένα scriptάκι που εμφανίζει την κατάσταση της xDSL γραμμής. Καλεί την IP διεύθυνση του modem, παίρνει τις πληροφορίες σε μορφή XML και δημιουργεί ένα ascii πινακάκι με την ταχύτητα. Υποστηρίζει μόνο το Speedport Entry 2i.

Είναι ένα απλό και βρώμικο bash scriptάκι, που έφτιαξα για να βλέπω την τραγική σύνδεση μου στο internet. Μπορεί να φανεί χρήσιμο και σε κάποιον άλλο ταλαίπωρο άνθρωπο.

Ευχαριστώ.

 

dsl.gif.8fb1062b5682155855e760e1d23407cc.gif


ΥΓ:
Άλλα βρώμικα scriptάκια:

getdslinfo.zip

Επεξ/σία από dovecotDev
  • Like 4
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πριν 3-4 μηνες ανακαλυψα το xml του 2i και προσπαθουσα να δειξω κατι απο τα οσα λεει στο conky μου, αλλα δεν καταφερα τιποτα.
Ειναι ευκολο να προστεθουν και αλλα στοιχεια εκει, πχ τα attenuation και snr?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

18 ώρες πριν, dovecotDev είπε

Αποφεύγω τα Microsoft προϊόντα.

Για δουλειά προτιμώ το gitlab, και για τα βρώμικα scriptάκια μου προτιμώ το insomnia.
 

δεν αντιλέγω αλλά καπου πρέπει να βαλουμε τον κωδικα μας ... ο καθενας βαζει το κωδικα του εκει που θελει ... γενικα θα πρέπει ενα αποθετήριο πιστεύω 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι είναι πολύ εύκολο, παίρνοντας το ParaName σαν κλειδί στο dictionary STATUSDIC, π.χ. το Upstream_current_rate από το XML είναι το variable:

${STATUSDIC["Upstream_current_rate"]}

Εδώ είναι το XML που παρέχει το modem:

<ajax_response_xml_root>
  <IF_ERRORPARAM>SUCC</IF_ERRORPARAM>
  <IF_ERRORTYPE>SUCC</IF_ERRORTYPE>
  <IF_ERRORSTR>SUCC</IF_ERRORSTR>
  <IF_ERRORID>0</IF_ERRORID>
  <OBJ_DSLINTERFACE_ID>
    <Instance>
      <ParaName>_InstID</ParaName>
      <ParaValue>IGD.WD1.WDCfg</ParaValue>
      <ParaName>Upstream_noise_margin</ParaName>
      <ParaValue>120</ParaValue>
      <ParaName>Upstream_current_rate</ParaName>
      <ParaValue>738</ParaValue>
      <ParaName>Downstream_noise_margin</ParaName>
      <ParaValue>112</ParaValue>
      <ParaName>Downstream_current_rate</ParaName>
      <ParaValue>11904</ParaValue>
      <ParaName>UpCrc_errors</ParaName>
      <ParaValue>63</ParaValue>
      <ParaName>Downstream_attenuation</ParaName>
      <ParaValue>304</ParaValue>
      <ParaName>Fec_errors</ParaName>
      <ParaValue>8136</ParaValue>
      <ParaName>Status</ParaName>
      <ParaValue>Up</ParaValue>
      <ParaName>DownCrc_errors</ParaName>
      <ParaValue>259</ParaValue>
      <ParaName>Atuc_fec_errors</ParaName>
      <ParaValue>26</ParaValue>
      <ParaName>Upstream_attenuation</ParaName>
      <ParaValue>191</ParaValue>
      <ParaName>Module_type</ParaName>
      <ParaValue>VDSL2</ParaValue>
    </Instance>
  </OBJ_DSLINTERFACE_ID>
  <OBJ_DEVINFO_ID>
    <Instance>
      <ParaName>_InstID</ParaName>
      <ParaValue>IGD</ParaValue>
      <ParaName>SoftwareVer</ParaName>
      <ParaValue>V1.0.0_OTET14MAPEA</ParaValue>
      <ParaName>SerialNumber</ParaName>
      <ParaValue>111111111111111</ParaValue>
    </Instance>
  </OBJ_DEVINFO_ID>
  <OBJ_LEDSTATUS_ID>
    <Instance>
      <ParaName>LEDStatus</ParaName>
      <ParaValue>Up</ParaValue>
    </Instance>
  </OBJ_LEDSTATUS_ID>
</ajax_response_xml_root>

 

6 ώρες πριν, jim_p είπε

Πριν 3-4 μηνες ανακαλυψα το xml του 2i και προσπαθουσα να δειξω κατι απο τα οσα λεει στο conky μου, αλλα δεν καταφερα τιποτα.
Ειναι ευκολο να προστεθουν και αλλα στοιχεια εκει, πχ τα attenuation και snr?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις 23/7/2021 στις 12:03 ΜΜ, jim_p είπε

Πριν 3-4 μηνες ανακαλυψα το xml του 2i και προσπαθουσα να δειξω κατι απο τα οσα λεει στο conky μου, αλλα δεν καταφερα τιποτα.
Ειναι ευκολο να προστεθουν και αλλα στοιχεια εκει, πχ τα attenuation και snr?

Μπορείς να πάρεις μεμονωμένες τιμές με το xmlstarlet και xpath κάπως έτσι:

#!/bin/bash

# Τιμή του Downstream_attenuation
curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Downstream_attenuation']/following-sibling::ParaValue[1]/text()"

# Τιμή του Upstream_attenuation
curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Upstream_attenuation']/following-sibling::ParaValue[1]/text()"

# Τιμή του Downstream_current_rate, μετατροπή σε mbps
echo "$(echo "scale=3;$(curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Downstream_current_rate']/following-sibling::ParaValue[1]/text()") / 1000" | bc -l) mbps"

# Τιμή του Upstream_current_rate, μετατροπή σε mbps
echo "$(echo "scale=3;$(curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Upstream_current_rate']/following-sibling::ParaValue[1]/text()") / 1000" | bc -l) mbps"

# SNR downstream db
echo "$(echo "scale=1;$(curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Downstream_noise_margin']/following-sibling::ParaValue[1]/text()") / 10" | bc -l) snr"

# SNR upstream db
echo "$(echo "scale=1;$(curl --silent http://192.168.1.1/common_page/status_info_lua.lua | xmlstarlet sel -t -c "//*/ParaName[text() = 'Upstream_noise_margin']/following-sibling::ParaValue[1]/text()") / 10" | bc -l) snr"

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις 22/7/2021 στις 8:52 ΜΜ, dovecotDev είπε

Αποφεύγω τα Microsoft προϊόντα.

Για δουλειά προτιμώ το gitlab, και για τα βρώμικα scriptάκια μου προτιμώ το insomnia.
 

Μπορείς για τα βρώμικα να έχει μόνο και μόνο 1 gitlab repository.

Σε τι router είναι δεδοκιμασμένο; Σκεύτομουν αν μπορούσα να το έκανα systemd service και να καταγράφει ιστορικά στοιχεία σε sqlite ώστε όταν έρχετε τεχνικός να έχω κάτι να δείξω ;).

  • Confused 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

59 λεπτά πριν, PC_MAGAS είπε

Σε τι router είναι δεδοκιμασμένο

Αυτό το URL νομίζω δουλεύει μόνο στο speedport entry 2i. Με μια αναζήτηση στο νετ, σε νεότερα δουλεύει το http://<ROUTER_IP>/data/Status.json (με τα δεδομένα σε μορφή JSON προφανώς).

Μια πρόταση για το script: αν δεν έχει δοθεί ως παράμετρος, μπορείς να βρεις την IP του router έτσι

ip r | sed -n 1p |  cut -d' ' -f3

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Είναι μόνο για το Speedport Entry 2i. Δεν γνωρίζω αν άλλα modemάκια έχουν την δυνατότητα να παρέχουν δεδομένα γραμμής χωρίς login. Ωραίο θα ήταν να υπήρχε αυτή η δυνατότητα και στα Oxygen που είναι αρκετά διαδεδομένα.

Με λίγες γραμμές bash, το scriptάκι μπορεί να καταχωρεί και σε sqlite ή σε ένα απλό CSV. Ωραία ιδέα αλλά ελπίζω να έχω σύντομα starlink, γιατί δεν αντέχω άλλο με πOTE, μέχρι να γράψω αυτό το κείμενο το internet έπεσε 3 φορές....

 

1 ώρα πριν, PC_MAGAS είπε

Μπορείς για τα βρώμικα να έχει μόνο και μόνο 1 gitlab repository.

Σε τι router είναι δεδοκιμασμένο; Σκεύτομουν αν μπορούσα να το έκανα systemd service και να καταγράφει ιστορικά στοιχεία σε sqlite ώστε όταν έρχετε τεχνικός να έχω κάτι να δείξω ;).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...