Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Internet Bandbreite per Skript ermitteln

Mitglied: Iwan

Systeme: aktuell Win XP, später Win7, Verbindung per UMTS

Hallo zusammen,

für unseren Außendienst benötigen wir einfache Möglichkeit, die aktuelle Internet Bandbreite (spez. Downloadrate) zu ermitteln.
Ca. 90% der User verwenden UMTS und haben halt leider nicht immer 3G zur Verfügung.
Leider achten sie auch nicht immer drauf, was sie aktuell zur Verfügung haben.
Da hagelt es dann leider häufiger "böse" Anrufe, das ein Datenabgleich oder Suftwareupdate mal wieder länger dauert.
Daher ist gewünscht, das der User eine Art Hinweisfenster erhält, bevor er eine VPN-Verbindung aufbaut.
Nicht gewünscht ist, das der Mitarbeiter auf irgendeine Webseite geht und einen "Speedtest" durchführt oder irgendwelche zusätzlichen Programme aufrufen muss.

IST-Zustand: aktuell wird eine Verknüpfung auf dem Desktop (.CMD) aufgerufen, die die VPN-Verbindung öffnet, seine Netzlaufwerke mappt, nach Updates guckt und andere Dinge.

SOLL-Zustand: das Ergebnis soll ein Skript sein, das z.Bsp. von unserem eigenen Webserver eine Datei lädt und die Downloadrate ermittelt.
Der Mitarbeiter erhält dann eine Meldung, das z.Bsp. die aktuelle Verbindung zu langsam ist, um einen Datentransfer zu machen o.ä.

ANSATZ: mit WGet habe ich schon ein paar Tests gemacht und ich sehe auch brauchbare Ergebnisse.
Das diese keine 100%ige Aussagekraft haben, ist uns durchaus bwusst.
Erstaunlicherweise kommen die Ergebnisse recht nah an die Realität ran.
Ich habe das Ergebnis in eine Log.txt geschrieben und die Zeile auch mit findstr ausgelesen.
Nur komm ich da nicht weiter....

Vielleicht kennt ja jemand eine Möglichkeit (.cmd, .vbs, o.ä.), wie man sowas realisieren könnte.

Content-Key: 173764

Url: https://administrator.de/contentid/173764

Ausgedruckt am: 18.06.2021 um 03:06 Uhr

Mitglied: Skyemugen
Skyemugen am 27.09.2011
Aloha,

du hast also schon eine passende Möglichkeit und kommst nicht weiter, nun dann poste doch mal dein bisheriges Skript (bitte mit <code></code>-Tags) und beschreibe dazu, was nicht läuft oder was noch zusätzlich geschehen sollte.

Das wäre m.M.n. momentan die sinnvollste Variante ... ausgenommen, bastla & Co. KG zaubern wieder unbekannte tools herbei, die das auf der cmd-Ebene ebenso erledigen ^_^

greetz André

P.S.: Ich persönlich mag ja keine crossposter ...
Mitglied: Iwan
Iwan am 27.09.2011
Hallo,

was hat das mit Crossposter zu tun, wenn man einfach auf mehrere Resourcen zurückgreifen kann?
Das ist für mich so, als wenn ich nur bei einem einzigen Händler ein Angebot einhole statt bei mehreren.

Zum Thema:

Aufruf von WGET:

Dadurch wird der komplette Downloadvorgang in die speed.txt geschrieben.
Ich habe das Ergebnis mal auf entscheidenden Zeilen gekürzt:
Interessant für die weitere Verarbeitung wäre ein Auslesen der 450 KB/s.
Diese müsste dann in 450 und KB/s aufgesplittet werden.
Theoretisch könnte ja auch MB/s da stehen, die ich mit der aktuellen Leitung hier aber nicht erreichen werde.
Mitglied: Skyemugen
Skyemugen am 27.09.2011
Aloha,

was hat das mit Crossposter zu tun, wenn man einfach auf mehrere Resourcen zurückgreifen kann?
Das ist für mich so, als wenn ich nur bei einem einzigen Händler ein Angebot einhole statt bei mehreren.
Crossposting aber egal ...

Nun, eine Möglichkeit wäre z.B. etwa so:

Momentan wird nach Datum und Uhrzeit (nur Stunden und Minuten) gesucht, da die Sekunden beim Ausführen des Batches sich unterscheiden können / werden zu dem Wert in der speed.txt, ich denke eine Minutenüberschreitung dürfte relativ ausgeschlossen sein, wenn beides in einem Zug abläuft.

Ich habe die Meldung einfach mal als VBS gemacht, damit der User eine Popupmeldung hat, es ginge auch per
Sofern net send aktiviert ist, gut oben müsste Windows Scripting Host auch aktiv sein (default) oder du lässt es nur als echo im cmd laufen aber wer beachtet das schon ...

greetz André
Mitglied: Terence-Chill
Terence-Chill am 27.09.2011
Hallo Iwan, André

ich persönlich würde folgenderweise vorgehen um Speed und Einheit zu ermitteln: (getestet, hat funktioniert)

- oder -

Wie du dann weiter vorgehen willst, wenn du diese beiden Daten hast, bleibt dir überlassen. Von VBS hab' ich keine Ahnung und net send halte ich für nicht die beste Lösung.

Gruß

Edit: Ich hab' die Datei einfach mal kb.txt benannt - hier kannst du natürlich noch eleganter mit Variablen o.ä. vorgehen. Insgesamt geht das ganze bestimmt eleganter und schlanker; leider nicht mit meiner Erfahrung (;
Edit2: Etwas schlankere Alternative
Mitglied: Skyemugen
Skyemugen am 27.09.2011
Aloha,

aha, lieber zwei Schleifen hatte ich auch erst im Sinn aber hier ... meh zu viel des Guten, statt ein kurzes Ersetzen *gg* niedriger als KB/s wird's wohl nicht und höher hat der TE ja bereits ausgeschlossen ;-) face-wink und was machst du, wenn die Textdatei nicht überschrieben wird, sondern immer hinten ran? skip=4, hm, das muss er dann auch anpassen und erst einmal abzählen.

Also ich weiß ja nicht ;-) face-wink

greetz André
Mitglied: Terence-Chill
Terence-Chill am 27.09.2011
Hey André,

mir ging's nicht darum, deine Version zu ersetzen, lediglich wollte ich einen zweiten Vorschlag, der auch auf die Einheit eingeht, darstellen.
Klar, falls die Datei nicht überschrieben, sondern die aktuellen Werte angehängt werden, würde man mit meiner Variante dumm da stehen (das Skip ist übrigens, zumindest kann ich das in Hinblick auf die gelieferten Daten sagen, nicht notwendig. Es sollte das ganze nur etwas schneller machen).

Wie würdest du den String auseinanderziehen ohne zweite Schleife, bzw., ist das überhaupt möglich?

Gruß
Mitglied: Iwan
Iwan am 27.09.2011
Vielen dank schon mal für die 2 Lösungsansätze.

NETSEND fällt aber raus, da es nicht aktiviert ist.
Den Umweg mit der Ausgabe über .VBS finde ich persönlich auch nicht so prickelnd.

Wichtig ist mir, das die Werte im .CMD landen und ich sie von da aus weiterverarbeiten kann.
Dies bieten beide Lösungsansätze, die ich spätestens morgen testen werde.


PS: Crossposting ist sehr effektiv, solange man die Lösung auch überall bekannt gibt.
Somit sehe ich da nichts negatives drin, aber jedem seine Meinung...
Mitglied: bastla
bastla am 27.09.2011
Hallo Terence-Chill und willkommen im Forum!
Wie würdest du den String auseinanderziehen ohne zweite Schleife
Etwa so:
- wobei ich mich allerdings, wie Skye, nicht auf die Zeilenanzahl verlassen würde - daher eher:
Grüße
bastla
Mitglied: Terence-Chill
Terence-Chill am 27.09.2011
Schön, Danke :) face-smile Wie immer - eigentlich garnicht so kompliziert!
Mitglied: Skyemugen
Skyemugen am 27.09.2011
Aloha bastla,

"delims=() " ... hm, ich hatte mich zwar so oder so am Anfang auf die Klammer eingeschossen, weil sie mein Blickfang war, wollte allerdings dann doch tokens=3-4 verwenden aber glaubst du, heute lief irgendwas? Ich hatte natürlich den Fehler gemacht und "delims= ()" gesetzt *pfeif* und mich dann doch wieder meiner Arbeit gewidmet, statt das Leerzeichen im Delimiter ans Ende zu setzen *tärä* - so ist das mit dem Licht, manchmal brennt es ...

Aber auch in deiner Variante: Wenn die Datei nur vergrößert wird, statt neu beschrieben, läuft das nicht ganz so wie gewollt, daher hatte ich noch die Stunde-Minute-Suche mit eingebaut aber ich schätze, die Datei wird wahrscheinlich eh jedes Mal neu überschrieben, keine Ahnung wie wget das handhabt ;-) face-wink
Den Umweg mit der Ausgabe über .VBS finde ich persönlich auch nicht so prickelnd.
Frag' mal den Enduser, der keine Lust hat, in der Konsole Plaintext zu lesen ;-) face-wink Ohne Popup mit Klick-Mich kriegen die meisten doch gar nix wirklich mit.
mir ging's nicht darum, deine Version zu ersetzen, lediglich wollte ich einen zweiten Vorschlag, der auch auf die Einheit eingeht, darstellen.
Aye, war mir schon klar aber den Vorschlag hatte ich extra ausgelassen ;-) face-wink

greetz André
Mitglied: bastla
bastla am 27.09.2011
Hallo Skye!
Wenn die Datei nur vergrößert wird, statt neu beschrieben
... steht der aktuellste Eintrag vermutlich am Ende ... ;-) face-wink

Grüße
bastla
Mitglied: Iwan
Iwan am 27.09.2011
Richtig, er steht am Ende der Datei ;-) face-wink
Ich habe eigentlich nicht vor, die Datei fortzuschreiben, sondern sie beim nächsten Aufruf zu überschreiben.
Nur die ermittelten Werte werde ich mir evtl. in einer separaten Datei wegschreiben.

@bastla
Damit sucht er nach jedem Eintrag in der Datei, richtig?
Mitglied: bastla
bastla am 27.09.2011
Hallo Iwan!
Damit sucht er nach jedem Eintrag in der Datei, richtig?
Nach jedem Eintrag mit dem heutigen Datum (Du kannst ja testweise
ohne das Drumherum ausführen) - sollte es mehrere Zeilen der Art
geben, werden nach der Schleife die Werte der letzten passenden Zeile in den Variablen stehen ...
Nur die ermittelten Werte werde ich mir evtl. in einer separaten Datei wegschreiben.
Dann kannst Du mit "tokens=1-4" auch Datum und Uhrzeit (als %%a und %%b; Wert und Einheit wären dann %%c und %%d) "mitnehmen" ...

Grüße
bastla
Mitglied: Skyemugen
Skyemugen am 27.09.2011
Aloha bastla,

ich sag's ja: Wir arbeiten schon zu viel mit Unterprogrammen, sodass mir schon glatt entfällt, dass der letzte Wert gespeichert wird :D

greetz André
Mitglied: Iwan
Iwan am 28.09.2011
Guten morgen zusammen,

ich habe nun die Code-Schnipsel zusammengeworfen und folgendes Skript herausbekommen:
Das funktioniert soweit schon mal einwandfrei. Nun muss ich es halt noch mit div. Inet-Verbindungen testen.

Vielen dank !
Mitglied: Berrnd
Berrnd am 28.09.2011
Hi,

ich werf mal noch 'nen Codeschnipsel dazu.
Ich hab für einen ähnlichen Zweck mal eine VBS-Function gebaut. Ob die 100% genau ist kann ich natürlich nicht sagen, kommt aber sicherlich auch an recht realistische Werte ran. ;)
Der Rückgabewert ist die Geschwindigkeit in KB/s.

Viele Grüße - Bernd
Mitglied: Iwan
Iwan am 28.09.2011
Und der Aufruf erfolgt mit der runterzuladenen Datei als Paramater?
Mitglied: Berrnd
Berrnd am 28.09.2011
Hi,

ja, der Parameter "URL" ist die URL zu einer beliebigen Web-Resource...
Also z. B.

Gruß - Bernd
Heiß diskutierte Beiträge
Administrator.de Feedback
Neue Administrator Version
FrankVor 1 TagInformationAdministrator.de Feedback77 Kommentare

Hallo User, heute Nacht haben wir Release 5.9 unserer Seite veröffentlicht. Diese bringt ein paar grundlegende Neuerungen für unsere User mit sich: Die Suche nach ...

Windows 10
Windows 11 Vorabversion aufgetaucht
NixVerstehenVor 1 TagTippWindows 1023 Kommentare

Auf Deskmodder.de ist ein Bericht über eine im Netz aufgetauchte Vorabversion von Windows 11 aufgetaucht. Der Bericht: Deskmodder.de - Windows 11 Vorabversion Bericht Download der ...

Hardware
PC und Monitor über Entfernung verbinden
gelöst ben1300Vor 1 TagFrageHardware14 Kommentare

Guten Morgen :) folgende IST Situation: Ich habe einen Gaming PC, welchen meine Freundin gerne nutzt, z.B. für das "legendäre" Spiel Sims 4 ;) Normalerweise ...

Windows Server
Durchgeschliffener Drucker funktioniert auf dem Server nicht
Disse1987Vor 1 TagFrageWindows Server12 Kommentare

Hallo zusammen, wieder einmal muss ich mich an euch wenden da wir mit unserem Latein am Ende sind. Seid ein paar Tagen hat eine Kundin ...

Netzwerke
Internetprobleme seit Serverinstallation
beepboopVor 16 StundenFrageNetzwerke14 Kommentare

Guten Tag zusammen Bei einem Kunden habe ich ein sehr merkwürdiges Problem. Wir haben vor zwei Wochen einen Server beim Kunden installiert. Vorher waren nur ...

Windows Server
Auf Active Directory Benutzer und Computer von Windows 10 zugreifen
RealThoreVor 1 TagFrageWindows Server9 Kommentare

Hallo zusammen, da wir in der Abteilung (10 Leute) uns regelmäßig um die RDP Sessions auf unseren DCs (2012 R2) prügeln, wolle ich mal nachfragen, ...

Sonstige Systeme
Womit ist eine Nextcloud am Besten zu betreiben. Linux-PC oder RaspiPI
gelöst frosch2Vor 19 StundenFrageSonstige Systeme15 Kommentare

Hallo, wieder einmal möchte ich eure Meinungen. Es soll eine nextcloud in einer produktiven Umgebung eingesetzt werden. Ca. 6 Aussendienst- und 7 Innendienstmitarbeiter. Zusammen 13 ...

Windows Server
Server 2019, Privates Netzwerk nach Neustart auf dem Host
dlohnierVor 1 TagFrageWindows Server9 Kommentare

Hallo, ich habe einen WIndows Server 2016 den ich kürzlich von 2016 per In-Place-Upgrade auf 2019 gehoben habe. Ebenfalls die 3 Hyper-V VM's mit Server ...