WinFuture-Forum.de: Kleines Software-Backup Project - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Kleines Software-Backup Project


#1 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 15. Oktober 2015 - 11:04

Hallo liebe Community^^

Ich befinde mich zurzeit in einer Ausbildung zum Fachinformatiker für Systemintegration. Ich habe mir aus dem Firmenumfeld einige Ideen abgeschaut, die ich gerne bei mir zu Hause umsetzen möchte.

Meine Idee:

Ich möchte ein NAS in mein Netzwerk einbinden auf dem diverse Dinge gespeichert werden sollen. Unter anderem will ich dort Installationsdateien jeglicher Software die ich verwende sichern, sodass ich wichtige Software aus meinem eigenen Netzwerk heraus herunterladen/installieren kann (falls z.B. auch mal das Internet ausfällt).
Zusätzlich wollte ich dazu (rein interesse halber) ein Programm entwickeln, welches die Softwareversionen, die derzeit auf dem NAS gesichert sind, mit aktuellen Versionen im Internet abgleicht und dementsprechend die Software auf dem neuesten Stand hält und 1 bis 2 ältere Versionen sicherheitshalber in Reserve hält.

Ich bin momentan noch komplett in der Planung des Projekts, wofür ich muss ich zugeben auch nur selten Zeit habe... Meine Programmierkenntnisse sind noch recht schmal, wobei ich vermute dass sich hier eher viel mit Scripts abspielen wird und alles was nicht bekannt ist soll hier gelernt werden, dies ist auch einer der Gründe warum ich das machen möchte.

Zur Herangehensweise habe ich noch einige Fragen:

1. Wie ich die Softwareversionen lokal herausfinde sollte kein Problem für mich sein, aber wie gelange ich an die Versionsnummern die online verfügbar sind? Ich möchte nur ungern die einzelnen Updatemanager der Programme nutzen, zumal diese natürlich auf dem NAS nicht einmal installiert sind.

2. Wie fängt man mit so einem Projekt typischer Weise an?

Frage 1 ist eine reine Mögichkeitsfrage. Da ich wenig Erfahrung in diesem Gebiet habe, weiß ich nicht ob es überhaupt eine Möglichkeit gibt solche Anfragen zu realisieren...

Bsp.: Ich möchte den Status von Chrome überprüfen. Meine lokal verfügbare Version hat die Nummer 1.0 (nur beispielsweise). Wo kann ich online nach der aktuell verfügbaren Version anfragen? Gibt es öffentliche Server, die solche Anfragen ausführen? Ich kann mir nämlich nicht vorstellen, dass ich den gleichen Server ansprechen kann/darf, den der Google Update-Manager nutzt bzw. ob dieser meine Anfrage überhaupt annimmt.

Frage 2 kommt hauptsächlich auf, da ich keine Erfahrung mit Projekten in diesem Maßstab habe und ich mir nicht vorstellen kann, wo ich anfangen soll. :(


Ich kann mir gut vorstellen, dass es wohl Dienste gibt die ähnliches bereits können. Mir geht es hauptsächlich darum Wissen in diesem Gebiet zu sammeln und praktisch umsetzen zu können.

Ich erstelle diesen Thread damit ich während der Umsetzung bei Problemen wieder nachfragen kann, ohne wieder neue Threads zu eröffnen.
Ich hoffe der ein oder andere ist interessiert daran und hilft mir etwas wenn ich nicht weiter komme =)


Nette Grüße
Alex


EDIT: Ich habe soeben bemerkt, dass es einen extra Bereich für Skript-Programmierung gibt, könnte ein Mod. den Thread bitte dorthin verschieben? Entschuldigung und Danke im Voraus :unsure:

Dieser Beitrag wurde von JohnnyHenver bearbeitet: 15. Oktober 2015 - 12:55

0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 15. Oktober 2015 - 14:04

Du kannst dir die einzelnen Webseiten mit wget (auch für Windows) herunterladen und dann via Script die Version raus picken.
Kann allerdings zu Problemen kommen wenn der Quellcode extrem geändert wird.
Alternativ geht auch - insofern vorhanden, das parsen des RSS Feeds.

Der Rest geht prima mit Robocopy in Windows.
0

#3 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 15. Oktober 2015 - 14:53

Moin darkness danke für deine Antwort^^,

das klingt ja schonmal sehr hilfreich. Also mit wget bzw. cURL könnte ich auf jeden Fall auch meinen Download selbst regeln. Wobei cURL da besser scheint, da es auch Weiterleitungen folgen kann, falls kein direkter Download Link auf der entsprechenden Website verfügbar ist.
Und mit Robocopy kann ich dann mein Downloadverzeichnis auf mein veraltetes, lokales Verzeichnis spiegeln oder alternativ einfach löschen und ersetzen. (Weiß nicht ob Robocopy beim spiegeln nur Verzeichnisse und Dateien vergleicht oder auch deren Inhalt)

Mir gefällt nur die Lösung mit der Beschaffung der Versionsinformation noch nicht so ganz.
Das einzige was mir bisher eingefallen ist was sicher geht, ist die Datei IMMER herunterzuladen und dann bei mir selbst untersuchen ob es sich um eine neue Version handelt, aber das wäre mir bei 5 Programmen schon zu viel unnötiger Traffic :lol:

Ich müsste also den Quellcode einer Website nach einem Downloadlink scannen. Das kann natürlich Probleme machen, wenn die Verzeichnisse einer Website mal verschoben werden oder wenn die Bennenung der neueren Versionen abweicht :(

Ich hatte ehrlich gesagt gehofft ich könnte die Kommunikation zwischen der Software und des Update-Dienstes klonen.
Das würde natürlich trotzdem ein riesen Aufwand, da ich das logischer weise für jedes Programm einzeln machen müsste. Aber ich will es nunmal so "roh" wie möglich lassen,also möglichst wenige fertigen Tools verwenden, damit ich möglichst viel von den Prozessen verstehe :P

Edit: Ist evtl. eine dumme Frage, aber wie oft oder wie wahrscheinlich ist es, dass Websites wie teamspeak.com oder google.com ihre Download-Verzeichnisse/Links ändern?

Dieser Beitrag wurde von JohnnyHenver bearbeitet: 15. Oktober 2015 - 15:02

0

#4 Mitglied ist offline   NCC-1701 B 

  • Gruppe: aktive Mitglieder
  • Beiträge: 458
  • Beigetreten: 30. Juli 15
  • Reputation: 49
  • Geschlecht:Männlich

geschrieben 15. Oktober 2015 - 15:39

Den kann man z.B. per Task automatisieren : http://tortoisesvn.net

Zitat

Edit: Ist evtl. eine dumme Frage, aber wie oft oder wie wahrscheinlich ist es, dass Websites wie teamspeak.com oder google.com ihre Download-Verzeichnisse/Links ändern?


das kann immer passieren darum läd man sich die Software nach Bedarf runter denn meist sagt dir ja schon die Software das es ne neue Version gibt wie z.B. Java, Adobe, Flash, usw..

Sag mir wie das bei Treibern bzw.Druckertreibern gehen soll?

Dieser Beitrag wurde von NCC-1701 B bearbeitet: 15. Oktober 2015 - 15:42

Eingefügtes Bild
1

#5 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 15. Oktober 2015 - 15:52

Ich weiß noch nicht so genau wie ich das mit den Treibern machen werde bzw. ob ich Treiber-Software überhaupt integrieren werde. Ich sehe den Persönlichen Nutzen des Programms hauptsächlich darin, mein System oder andere externe Systeme nach Neuaufsetzung z.B. auf meinen Stand zu bringen und einzelne Software-Installationspakete abrufbar zu haben.
Für meine Treiber habe ich bisher immer ein Tool verwendet, dass mir alle Treiber automatisch läd....

Wie gesagt, ich mache dieses Projekt zu 85% um Erfahrungen zu sammeln^^
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 15. Oktober 2015 - 16:11

Softwareversionen abgleichen ist so eine Sache. Wenn da nix bereitgestellt wird - egal von wem - sitzt man auf dem Trockenen, lies: muß für jedes einzelne Stück Software einen eigenen, spezifischen Check basteln...der dann natürlich ganz schnell kaputtgehen kann, zB weil der Anbieter die Websitestruktur geändert hat.


Würde mir daher zunächst mal SUMO anschauen. Die müssen das ja irgendwie hingekriegt haben. Möglicherweise läßt sich da konzeptuell etwas ableiten und wenn nicht, wer weiß... Mail schreiben und anfragen kostet nix, auch wenn sie vielleicht mit "sorry verraten wir nicht" antworten.

(Übrigens ist die Identifikation existierender Software auch nicht standardisiert und daher nur bedingt programmiert überprüfbar, wenn man nicht grad auf X viele Spezialfälle eingehen will. Sinnvoller erscheint mir da ein Abgleich mit Prüfsummen, ggf. über eine Datenbank, wo dann (Programm, Version; Prüfsumme) hinterlegt ist und so einen mehr oder weniger einfachen Check ermöglicht, ob Programm X der Version Y vorhanden war oder nicht (weil eine Datei mit Prüfsumme Z vorhanden war oder nicht).
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   Sturmovik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.776
  • Beigetreten: 10. Januar 08
  • Reputation: 445
  • Geschlecht:unbekannt
  • Wohnort:In Reichweite der Kaffeemaschine
  • Interessen:IT, Luftfahrt, historische Technik

geschrieben 15. Oktober 2015 - 16:38

Man kann hier viel Aufwand reinstecken und tausende Installer auf Updates überprüfen, oder mal von Linux lernen und einen Paketmanager verwenden: Chocolatey
«Geschichte wiederholt sich nicht, aber sie reimt sich» (Mark Twain)

Unix won't hold your hand. You wanna shoot your foot, Unix reliably delivers the shot.

True Cloudstorage
0

#8 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 15. Oktober 2015 - 17:30

Aber auch da muß es logischerweise eine Paketdatenbank geben, die irgendwer pflegt.. und erstmal ein Interesse daran hat, das auch zu tun. :)

Den so eine Paketverwaltung verwaltet sich ja nicht selber. Da muß wer die Hand drauf halten... was bei Linux relativ problemlos gehen sollte (eh alles GPL) aber bei Windows kann man sich da ganz schnell dem Vorwurf der Wettbewerbsverzerrung(smöglichkeit) ausgesetzt sehen. Denn kaum jemand ist so neutral, Konkurrenzprodukten eine gemeinsame Plattform zu geben, OHNE das eine oder andere zu bevorzugen und *außerdem* noch "bestechungsfest" zu sein.

Was nicht heißt, daß so eine gemeinsame Plattform nicht schon längst überfällig ist. Nur halt schon konzeptuell schwierig.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#9 Mitglied ist offline   Sturmovik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.776
  • Beigetreten: 10. Januar 08
  • Reputation: 445
  • Geschlecht:unbekannt
  • Wohnort:In Reichweite der Kaffeemaschine
  • Interessen:IT, Luftfahrt, historische Technik

geschrieben 15. Oktober 2015 - 17:53

Beitrag anzeigenZitat (RalphS: 15. Oktober 2015 - 17:30)

Aber auch da muß es logischerweise eine Paketdatenbank geben, die irgendwer pflegt.. und erstmal ein Interesse daran hat, das auch zu tun. :)

diese Datenbank existiert bereits und wird eifrig gepflegt. Leider ist dieses Projekt etwas unterbesetzt, ich nehm an die freuen sich über Unterstützung. Da mitzumachen halte ich jedenfalls für sinnvoller, als das Rad neu zu erfinden und eventuell in die gleichen Fallen zu tappen wie die Jungs von Choco.

Zitat

Den so eine Paketverwaltung verwaltet sich ja nicht selber. Da muß wer die Hand drauf halten... was bei Linux relativ problemlos gehen sollte (eh alles GPL) aber bei Windows kann man sich da ganz schnell dem Vorwurf der Wettbewerbsverzerrung(smöglichkeit) ausgesetzt sehen. Denn kaum jemand ist so neutral, Konkurrenzprodukten eine gemeinsame Plattform zu geben, OHNE das eine oder andere zu bevorzugen und *außerdem* noch "bestechungsfest" zu sein.

Wie oben schon angesprochen hat da jemand die Hand drauf. Das ganze ist ein Open-Source-Projekt und nach meiner Ansicht höchst neutral. Die paketieren das, was sie für gut befinden bzw. was eingereicht wird. Wenn da $Softwarehersteller eine neue Vertriebsplattform darin sieht und dem Projekt seine Pakete schickt, hat das nix mit Wettbewerbsverzerrung zu tun, sondern mit Wahrnehmung von Märkten. Wobei ich mir grad nicht sicher bin, ob da überhaupt kommerzielle Software dabei ist, hab lange nicht mehr reingeschaut.

Zitat

Was nicht heißt, daß so eine gemeinsame Plattform nicht schon längst überfällig ist. Nur halt schon konzeptuell schwierig.

Ist mir auf jeden Fall deutlich lieber, getestete Pakete aus einem Repo zu ziehen, als die verseuchten Installer, die man sich heutzutage so von diversen Webseiten zieht.
«Geschichte wiederholt sich nicht, aber sie reimt sich» (Mark Twain)

Unix won't hold your hand. You wanna shoot your foot, Unix reliably delivers the shot.

True Cloudstorage
0

#10 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 15. Oktober 2015 - 18:12

Lieber so als Chip.de. :lol:

Da geh ich natürlich uneingeschränkt mit. Und was freie Software unter Windows angeht, steht das ja noch auf einem ganz anderen (virtuellen) Blatt. Denn Open Source hat ja - nach heutigem Verständnis zumindest -- nicht den kommerziellen Anspruch.

Hab mir selber grad erst msys2 zum Anschauen besorgt. Da ist jetzt auch ein Paketmanager mit bei (wurde auch Zeit). Also ja, klar ist es toll wenn es das gibt.

Und klar ist es gut, wenn es ... zusätzliche? andersartige? jedenfalls, *neue* Vertriebswege gibt, die man nutzen kann. Grad für Neuankömmlinge gut, die sich ansonsten niemals am Markt auch nur bekanntmachen, geschweige denn etablieren könnten.

--- Aber es bleibt halt die Gefahr des Adblock-Plus-Weges.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#11 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 19. Oktober 2015 - 14:10

Hallo nochmal und danke für die Antworten/Diskussion =)

Bräuchte einmal kurz Hilfe:
Schreibe eben in C++ einige Test-Prozeduren. Geht gerade um den Abgleich zweier Versionsnummern, die als String eingegeben werden.
Also:
1. "10.0.2.1"
2. "10.0.2.2"

Möchte nun überprüfen ob 2 "neuer" als 1 ist.
Meine Idee bisher ist die einzelnen Abschnitte als Integer zu interpretieren und als
10*10^5 + 0*10^4 + 2*10^3 .... usw zu summieren und zu überprüfen ob die Summe 2 größer als Summe 1 ist.

Hat jemand eine effizientere Idee (die möglichst wenig Programmierkenntnisse erfordert :unsure:) ?

Grüße Alex^^

Dieser Beitrag wurde von JohnnyHenver bearbeitet: 19. Oktober 2015 - 14:17

0

#12 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 19. Oktober 2015 - 17:06

Ich bin mir relativ sicher, daß C++ ebenso wie C auch int strcmp(char *str1, char *str2); versteht. :)

Also einfach strcmp(VERSION_STRING_1, VERSION_STRING_2) und wenn -1 rauskommt war ..1 kleiner und wenn +1 rauskommt halt andersherum.

Damit sollte sich auch sowas wie 1.1.1a / 1.1.1b abhandeln lassen. Problematisch wird es potentiell, wenn von zB 1.9.1 auf 1.10.0 umgesprungen wird... müßtest Du testen, ob das tut.


Ansonsten via scanf, aber dann mußt Du halt auch schauen, daß Du zB 1.2 und 1.2.0 erfolgreich verglichen kriegst und mit Buchstaben im Version String kriegst Du auch Probleme. Das würde ich also bestenfalls als Fallback behalten, für Fälle die nachweislich mit strcmp() nicht tun und wo Du dann schon weißt, welche Form von Input da reinkommt und wie Du das abhandeln solltest.




NB: Das ist so natürlich nicht besonders elegant. Hab mir das grad nochmal angeschaut und strcmp() stolpert schon über das 1.9/1.10; hätt ich mir ja eigentlich auch denken können, da 1<9, aber egal. :blush:

Eleganter wär es wohl, wenn Du:
- Den bzw die version_strings mit strtok() auseinandernimmst
- Die Ergebnisse in ein Array steckst, sodaß version_major in array[0] landet, version_minor in array[1] und so weiter bis version_patch oder was Du auch immer vom (Software-Hersteller vorgesetzt gekriegt hast; und schließlich
- abgestuft die beiden Arrays vergleichst. a1[0]<a2[0]? Aha, a1 ist älter. a1[0] > a2[0]? a2 ist älter. a1[0] == a2[0]? Keine Ahnung, schauen wir uns a1[1] und a2[1] an.


Der Ansatz über Potenzsumme wie Du es andeutest funktioniert auch, aber nicht zur Basis 10. Das läuft zu schnell über. Hast Du zB sowas wie ... 10.6 (= 10^2+6) und ... 1.96 (=10+96) oder ... 0.106(=0+106) weißt Du schon nicht mehr, was was ist. Und wie schon angedeutet müßtest Du Dir den String auch noch "vor"bearbeiten - zB für Buchstaben im Version String eine eigene Position definieren (und hoffen, daß derjenige der die vergibt das auch ordentlich gemacht hat).

Sinnvoller wäre in jedem Fall eine breitere Basis, zB 256 (für 1 Byte anteilig) oder sogar 65536 (2 Bytes anteilig). Da kriegst Du so ziemlich alles unter. Für C/C++ müßte das nicht mal mathematisch passieren, via Bitshift reicht da schon (aber nur, wenn es um einen Faktor 2^n geht) - jedes Bitshift nach links (<<) gibt *2, sodaß <<8 um 1 Byte nach oben schiebt (*256) und <<16 entsprechend um 65536.


Haken ist und bleibt aber, wenn der ursprüngliche Softwarebauer den Version String nicht ordentlich oder gleich gar nicht setzt - und das geht schon bei den Trennzeichen los; war es 1.2.3.4 oder 1,2,3,4? -- dann hast Du umgehend ein Problem mit der Auswertung und müßtest das dann für solche Fälle einzeln abhandeln.

Dieser Beitrag wurde von RalphS bearbeitet: 20. Oktober 2015 - 01:40

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#13 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 20. Oktober 2015 - 07:14

Danke Ralph^^

Ich habe gestern mal ein wenig rumprobiert und zumindest eine Funktion hinbekommen, die mir Strings wie "1.3.24.0" mit unterschiedlichen Trennzeichen zu einem String-Vector ['1', '3', '24', '0'] konvertiert.
Als nächstes hätte ich diese jetzt als Integer ausgewertet und dementsprechend verrechnet (Bitshift ist schon mal ein guter Gedanke den ich nicht hatte).

Aber ich finde die Idee mit dem abgestuften Vergleich etwas schöner, werde mich da mal dransetzen =)

UPDATE: Funktion zum Vergleichen der Versionsnummern voll funktionsfähig. Toleranz für weitere Trennzeichen "." "," ";" "/" etc. folgt... ####erledigt.

Dieser Beitrag wurde von JohnnyHenver bearbeitet: 20. Oktober 2015 - 11:18

0

#14 Mitglied ist offline   JohnnyHenver 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. September 15
  • Reputation: 0

geschrieben 20. Oktober 2015 - 15:34

Erkenne gerade, dass es noch nicht viel bedeutet der Sprache C++ mächtig zu sein, wenn es heißt eine Windowsapplikation zu schreiben. :rolleyes:

Ich habe bisher immer nur in Programmierumgebungen mit integriertem Compiler gearbeitet. Im Moment nutze ich Codeblocks (da wir das auch in der Berufsschule verwenden).
Ich nehme an, dass es mehr Sinn machen würde, mein Projekt in VisualStudio zu realisieren.

Kann man sich als Anfänger gut in die Windows-kompatible Programmierung mit VisualStudio (Community 2015) einfinden? Oder ist man dabei schon auf Hilfe durch Bücher/Kurse angewiesen?

Grüße Alex =)
0

#15 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 20. Oktober 2015 - 17:38

Kann nur von mir selber reden und ich mag C::B gar nicht und find mich in VS2015 prima zurecht. Aber, jeder hat halt so seine Gewohn- und Gepflogenheiten. :lol:

Das Problem mit VS ist fast schon andersherum: viel Klicki und viel Bunti und vor allem viel IntelliSense-i. Von daher möcht ich behaupten, daß es schon recht einsteigerfreundlich ist. Man muß halt wissen, was wo zu suchen und zu finden ist in den Includes... aber unter anderem dafür gibt's die MSDN Library und die eignet sich meines Erachtens prima für alle Dinge die man wußte, nicht wußte bzw nicht mal wußte, daß es was zu wissen gab.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0