Wie groß kann eine Benutzeragentenzeichenfolge werden?


193

Wenn Sie einen Benutzeragenten in einer Datenbank speichern würden, für wie viel würden Sie sich anmelden?

Ich habe diesen Technet-Artikel gefunden, in dem empfohlen wird, UA unter 200 zu halten. Es sieht nicht so aus, als ob dies in der HTTP-Spezifikation definiert ist, zumindest nicht, dass ich es gefunden habe. Meine UA besteht bereits aus 149 Zeichen, und es scheint, dass jede Version von .NET hinzugefügt wird.

Ich weiß, dass ich die Saite analysieren und zerlegen kann, aber ich möchte lieber nicht.


BEARBEITEN
Basierend auf diesem Blog wird IE9 geändert, um die kurze UA-Zeichenfolge zu senden. Dies ist eine gute Änderung.




Was ist deine UA-Saite? Ich habe nur einige Zeichenfolgen mit 137 Zeichen in meiner Datenbank gefunden (was nicht zu groß ist).
Martin Thoma

Als ich diese Frage vor ungefähr fünf Jahren gestellt habe. UA Saiten wurden lang, sie enthielten viele zusätzliche Sachen ...
JoshBerke

2
Ich muss fragen, sind die Antworten auf diesen Thread noch relevant? Die meisten dieser Antworten sind 8 Jahre alt.
Peschke

Antworten:


114

Die HTTP-Spezifikation begrenzt die Länge der Header überhaupt nicht. Webserver begrenzen jedoch die von ihnen akzeptierte Headergröße und werfen, 413 Entity Too Largewenn sie überschritten wird.

Abhängig vom Webserver und seinen Einstellungen variieren diese Grenzwerte zwischen 4 KB und 64 KB (insgesamt für alle Header).


11
Apache begrenzt die maximale Feldlänge auf 8 KB ( httpd.apache.org/docs/2.2/mod/core.html#limitrequestfieldsize ).
Gumbo

Ich bin weniger besorgt über Server-Limits, da ich auf IIS bin. Ich weiß, dass es niemals größer sein wird als das Limit, das immer noch sehr groß ist, wenn Speicher zur Verfügung steht.
JoshBerke

6
@Josh - Speicher dient Ihnen gut, auf IIS sind es standardmäßig 16 KB. ;-)
vartec

69

Meine Meinung dazu:

  • Verwenden Sie eine dedizierte Tabelle , um nur UserAgents zu speichern (normalisieren Sie sie).
  • In Ihren verknüpften Tabellen, speichern Sie eine Fremdschlüsselwert auf den Useragenten zu Punkt zurück Autoinkrement-PrimärschlüsselPrimärschlüsselfeld
  • Speichern Sie die eigentliche UserAgent-Zeichenfolge in einem TEXT-Feld und achten Sie nicht auf die Länge
  • Haben Sie einen anderen UNIQUE BINARY(32) (oder 64 oder 128, abhängig von Ihrer Hash-Länge) und hashen Sie den UserAgent

Einige UA-Zeichenfolgen können übermäßig lang werden. Dies sollte Ihnen die Sorgen ersparen. Erzwingen Sie außerdem eine maximale Länge in Ihrem INSERTer, um die UA-Zeichenfolgen unter 4 KB zu halten. Sofern Sie nicht vom Benutzeragenten per E-Mail benachrichtigt werden, sollte diese Länge nicht überschritten werden.


1
Das TEXT-Feld sollte nicht mehr wie in MSDN angegeben verwendet werden: msdn.microsoft.com/en-us/library/ms187993(v=sql.90).aspx Verwenden Sie stattdessen NVARCHAR (MAX). Quelle: stackoverflow.com/questions/564755/…
Matt Roy

3
Meine Datenbank enthält 10.235 verschiedene Zeichenfolgen für Benutzeragenten. Ich wollte den schnellsten Hash-Algorithmus finden, der keine Kollisionen erzeugt. Für meine PHP-Umgebung stellte ich fest, dass md5 nach 2,3 Sekunden ohne Kollisionen schnell ausgeführt wurde. Interessanterweise habe ich crc32 und crc32b ausprobiert und sie haben auch bei 2,3 Sekunden ohne Kollisionen gearbeitet. Da md5 jedoch mehr Kombinationen als crc32 und crc32b aufweist, würde md5 wahrscheinlich weniger mögliche Kollisionen aufweisen. Wie auch immer, md5 ist meine Wahl und ich gehe davon aus, dass es gut funktionieren wird.
Noctufaber

2
Warum den User Agent hashen? Ist das für eine schnelle Suche oder so?
Boom

2
@Boom Lookups und Eindeutigkeit als DB-eindeutige Schlüssel können nur so lang sein.
CodeAngry

2
@noctufaber crc32 ist kein Hash, es versucht nicht, kollisionssicher zu sein.

29

So etwas haben wir in unseren Apache-Protokollen bemerkt. Es sieht für mich ungewöhnlich aus, aber ich sehe solche Dinge regelmäßig in Protokollen, hauptsächlich von Windows-Systemen.

97690420803; 79980706603; 9867086703; 996602846703; 87690803; 6989010903; 977809603; 666601903; 876905337803; 89670603; 89970200903; 786903603; 696901911703; 788905703; 896709803; 96890703; 998601903; 88980703; 666604769703; 978806603; 7988020803; 996608803; 788903297903; 98770043603; 899708803; 66960371603; 9669088903; 69990703; 99660519903; 97780603; 888801803; 9867071703; 79780803; 9779087603; 899708603; 66960456803; 898706824603; 78890299903; 99660703; 9768079803; 977901591603; 89670605603; 787903608603; 998607934903; 799808573903; 878909603; 979808146703; 9996088603; 797803154903; 69790603; 99660565603; 7869028603; 896707703; 97980965603; 976907191703; 88680703; 888809803; 69690903; 889805523703; 899707703; 997605035603; 89970029803; 9699094903; 877906803; 899707002703; 786905857603; 69890803; 97980051903; 997603978803; 9897097903; 66960141703; 7968077603; 977804603; 88980603; 989700803; 999607887803; 78690772803; 96990560903; 98970961603; 9996032903; 9699098703; 69890655603; 978903803; 698905066803; 977806903; 9789061703; 967903747703; 976900550903; 88980934703; 8878075803; 8977028703; 97980903; 9769006603; 786900803; 98770682703; 78790903; 878906967903; 87690399603; 99860976703; 796805703; 87990603; 968906803; 967904724603; 999606603; 988705903; 989702842603; 96790603; 99760703; 88980166703; 9799038903; 98670903; 697905248603; 7968043603; 66860703; 66860127903; 9779048903; 89670123903; 78890397703; 97890603; 87890803; 8789030603; 69990603; 88880763703; 9769000603; 96990203903; 978900405903; 7869022803; 699905422903; 97890703; 87990903; 878908703; 7998093903; 898702507603; 97780637603; 966907903; 896702603; 9769004803; 7869007903; 99660158803; 7899099603; 8977055803; 99660603; 7889080903; 66660981603; 997604603; 6969089803; 899701903; 9769072703; 666603903; 99860803; 997608803; 69790903; 88680756703; 979805677903; 9986047703; 89970803; 66660603; 96690903; 8997051603; 789901209803; 8977098903; 968900326803; 87790703; 98770024803; 697901794603; 69990803; 887805925803; 968908903; 97880603; 897709148703; 877909476903; 66760197703; 977908603; 698902703; 988706504803; 977802026603; 88680964703; 8878068703; 987705107903; 978902878703; 8898069803; 9768031703; 79680803; 79980803; 669609328703; 89870238703; 99960593903; 969904218703; 78890603; 9788000703; 69690630903; 889800982903; 988709748803; 7968052803; 99960007803; 969900800803; 668604817603; 66960903; 78790734603; 8868007703; 79780034903; 8878085903; 976907603; 89670830803; 877900903; 969904889703; 7978033903; 8987043903; 99860703; 979805903; 667603803; 976805348603; 999604127603; 97790701603; 78990342903; 98770672903; 87990253903; 9877027703; 97790803; 877901895603; 8789076903; 896708595603; 997601903; 799806903; 97690603; 87790371703; 667605603; 99760303703; 97680283803; 788902750803; 787909803; 79780603; 79880866903; 9986050903; 87890543903; 979800803; 97690179703; 876901603; 699909903; 96990192603; 878904903; 877904734903; 796801446903; 977904803; 9887044803; 797805565603; 98870789703; 7869093903; 87790727703; 797801232803; 666604803; 9778071903; 9799086703; 6969000903; 89670903; 8799075903; 897708903; 88680903; 97980362603; 97980503903; 889803256703; 88980388703; 789909376803; 69690703; 6969025903; 89970309903; 96690703; 877901847803; 968901903; 96690603; 88680607603; 7889001703; 789904761803; 976807703; 976902903; 878907889703; 9897014903; 896707046603; 696909903; 666603998903; 969902703; 79680421803; 9769075603; 798800192703; 97990903; 9689024903; 668604803; 969908671903; 9996094703; 69990642703; 97890895903; 977805619903; 79980859903; 88980443803; 98970649603; 997602703; 888802169903; 699907803; 667602028803; 786903283903; 997607703; 969909803; 798809925903; 9976045603; 97790903; 9789001903; 966903603; 9789069603; 968906603; 6989091803; 896701603; 6979059803; 978803903; 997606362603; 88980803; 98970803; 88880921703; 8997065703; 899700703; 698908703; 797801027903; 7889050903; 87890603; 78690703; 99660069703; 97980309903; 976800603; 666606803; 898707703; 79880019803; 66960250803; 7978049803; 88780602603; 79680903; 88880792703; 96990903; 667608603; 87790730903; 98970903; 9699032903; 8987004803; 88880703; 89770046603; 978800803; 969908903; 9798022603; 696901903; 799803703; 989703703; 668605903; 79780903; 998601371703; 796803339703; 87890922603; 898708903; 9966061903; 66960891903; 96790903; 8779050803; 98870858803; 976909298603; 9887029903; 669608703; 979806903; 878903803; 99960703; 9789086703; 979801803; 66960008703; 979806830803; 99760212703; 786906603; 797807603; 789907297703; 96990703; 786901603; 796807766603; 896702651603; 789902585603; 66660925903; 9986085703; 66960302703; 69890703; 789900703; 89970903; 9679060703; 9789002903; 979908821603; 986708140803; 976809828703; 7988082803; 79680997903; 99960803; 9788081903; 979805703; 787908603; 66960602803; 9887098703; 978803237703; 888806804603; 999604703; 977904703; 966904635703; 97680291703; 977809345603; 8878046703; 988709803; 976900773603; 989703903; 88780198603; 87790603; 986708703; 78890604703; 87790544803; 976809850903; 887806703; 987707527603; 79880803; 9897059603; 897709820603; 97880804803; 66960026703; 9789062803; 9867090803; 669600603; 8967087703; 78890903; 89770903; 97980703; 976802687603; 66860400803; 979901288603; 96990160903; 99860228903; 966900703; 66760603; 9689035703; 9779064703; 7968023603; 87890791903; 98770870603; 9798005803; 6969087903; 9779097903; 6979065703; 699903252603; 79780989703; 87690901803; 978905763903; 977809703; 97790369703; 899703269603; 8878012703; 78790803; 87690395603; 8888042803; 667607689903; 8977041803; 6666085603; 6999080703; 69990797803; 88680721603; 99660519803; 889807603; 87890146703; 699906325903; 89770603; 669608615903; 9779028803; 88880603; 97790703; 79780703; 97680355603; 6696024803; 78790784703; 97880329903; 9699077703; 89870803; 79680227903; 976905852703; 8997098903; 896704796703; 66860598803; 9897036703; 66960703; 9699094703; 9699008703; 97780485903; 999603179903; 89770834803; 96790445603; 79680460903; 9867009603; 89870328703; 799801035803; 989702903; 66960758903; 66860150803; 6686088603; 9877092803; 96990603; 99860603; 987703663603; 98870903; 699903325603; 87790803; 97680703; 8868030703; 9799030803; 89870703; 97680803; 9669054803; 6979097603; 987708046603; 999608603; 878904803; 998607408903; 968903903; 696900703; 977907491703; 6686033803; 669601803; 99960290603; 887809169903; 979803703; 69890903; 699901447903; 8987064903; 799800603; 98770903; 8997068703; 967903603; 66760146803; 978805087903; 697908138603; 799801603; 88780964903; 989708339903; 8967048603; 88880981603; 789909703; 796806603; 977905977603; 989700603; 97780703; 9669062603; 88980714603; 897709545903; 988701916703; 667604694903; 786905664603; 877900803; 886805490903; 89970559903; 99960531803; 7998033903; 98770803; 78890418703; 669600872803; 996605216603; 78690962703; 667604903; 996600903; 999608903; 9699083803; 787901803; 97780707603; 787905312703; 977805803; 8977033703; 97890708703; 989705521903; 978800703; 698905703; 78890376903; 878907703; 999602903; 986705903; 668602719603; 979901803; 997606903; 66760393903; 987703603; 78790338903; 96890803; 97680596803; 666601603; 977902178803; 877902803; 78790038603; 8868075703; 99960060603) 787905312703; 977805803; 8977033703; 97890708703; 989705521903; 978800703; 698905703; 78890376903; 878907703; 999602903; 986705903; 668602719603; 979901803; 997606903; 66760393903; 987703603; 78790338903; 96890803; 97680596803; 666601603; 977902178803; 877902803; 78790038603; 8868075703; 99960060603) 787905312703; 977805803; 8977033703; 97890708703; 989705521903; 978800703; 698905703; 78890376903; 878907703; 999602903; 986705903; 668602719603; 979901803; 997606903; 66760393903; 987703603; 78790338903; 96890803; 97680596803; 666601603; 977902178803; 877902803; 78790038603; 8868075703; 99960060603)


36
Gibt es jemanden, der kommentieren möchte, was in aller Welt mit diesem Benutzeragenten los ist? lol Ich muss hinzufügen, ich bin neugierig, wie sich so ein Tier bilden kann.
Erx_VB.NExT.Coder

22
Wenn jemand neugierig ist; Dieser taktet mit 8010 Zeichen . Wie konnte jemand im Browserteam gedacht haben, dass dies eine gute Idee ist? Es ist so verrückt wie eine Tüte Katzen!
Doktor Jones

15
Werden durch das Abschneiden dieser Benutzeragentenzeichenfolge bei 256 oder 512 alle Daten entfernt, die überhaupt nützlich sind?
JackAce

12
Ich habe einige Beobachtungen gemacht, aber noch nicht ausgearbeitet. Es gibt 642Zahlen. Die ersten vier Zahlen sind immer 6, 7, 8, oder 9. Die fünfte Zahl ist immer 0. Die letzten drei sind immer 603, 703, 803, oder 903. Vielleicht könnte jemand dieses Muster erkennen? (Halbwertszeit 3 ​​bestätigt?)
Meshy

Interessant. Ich habe jetzt Code hinzugefügt, um die UA-Zeichenfolge für meine Datenbankprotokolle auf 255 Zeichen zu kürzen.
Deepak Thomas

28

Da es für Datenbankzwecke ist und es keine praktische Begrenzung gibt, würde ich mich für eine UserAgents-Tabelle mit UserAgentId als Int und UserAgentString als NVarChar (MAX) entscheiden und einen Fremdschlüssel für die ursprüngliche Tabelle verwenden.


19
Sie würden wahrscheinlich mit Benutzeragenten in einer 1-zu-eine-Handvoll-Beziehung zu Ihren Benutzern enden. Die meisten Benutzeragenten werden durch die von einem Benutzer installierten Elemente und in einer bestimmten Reihenfolge so optimiert, dass sie fast persönlich identifizierbar sind (eine andere Antwort enthält ein gutes Beispiel dafür). Tatsächlich hat der EFF eine Studie (pdf) darüber durchgeführt.
Patridge

1
@patridge +1 für Link, sehr gute Studie. Es ist ein bisschen unangebracht, weil sie mehrere Fingerabdrücke und nicht nur die Zeichenfolgen des Benutzeragenten betrachten. In einem realen Szenario würden für eine Site, die mehrere Millionen Seitenaufrufe pro Monat erhält, einige tausend Benutzeragentenzeichenfolgen angezeigt, sodass eine Normalisierung meiner Meinung nach sinnvoll ist.
Trotzdem

@patridge Der Link zur Studie ist jetzt unterbrochen: aktualisierter Link
Boris Dalstein

1
@patridge Ich stimme zu, dass Ihre Idee plausibel klingt, aber meine Daten stimmen nicht mit uns beiden überein. Ich arbeite gerade mit genau dieser Art von System und habe ungefähr 70.000 einzigartige UAs für 1,2 Millionen Benutzer. Der Grund, warum ich auf dieser Seite bin, ist, dass ich 256 als Limit für mein Datenbankfeld ausgewählt habe und festgestellt habe, dass 50.000 von 70.000 abgeschnitten wurden, sodass ich einige Informationen verloren habe. Ich werde es jetzt auf 4k erhöhen. Es wird interessant sein zu wissen, wie viele einzigartig gewesen wären, wenn sie nicht abgeschnitten worden wären
Darren H,

10

Wie ist das für groß?:

SearchSystem9616306563; SearchSystem6017393645; SearchSystem5219240075; SearchSystem2768350104; SearchSystem6919669052; SearchSystem1986739074; SearchSystem1555480186; SearchSystem3376893470; SearchSystem9530642569; SearchSystem4877790286; SearchSystem8104932799; SearchSystem2313134663; SearchSystem1545325372; SearchSystem7742471461; SearchSystem9092363703; SearchSystem6992236221; SearchSystem3507700306; SearchSystem1129983453; SearchSystem1077927937; SearchSystem2297142691; SearchSystem7813572891; SearchSystem5668754497; SearchSystem6220295595; SearchSystem4157940963; SearchSystem7656671655; SearchSystem2865656762; SearchSystem6520604676; SearchSystem4960161466; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) SearchSystem6919669052; SearchSystem1986739074; SearchSystem1555480186; SearchSystem3376893470; SearchSystem9530642569; SearchSystem4877790286; SearchSystem8104932799; SearchSystem2313134663; SearchSystem1545325372; SearchSystem7742471461; SearchSystem9092363703; SearchSystem6992236221; SearchSystem3507700306; SearchSystem1129983453; SearchSystem1077927937; SearchSystem2297142691; SearchSystem7813572891; SearchSystem5668754497; SearchSystem6220295595; SearchSystem4157940963; SearchSystem7656671655; SearchSystem2865656762; SearchSystem6520604676; SearchSystem4960161466; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) SearchSystem6919669052; SearchSystem1986739074; SearchSystem1555480186; SearchSystem3376893470; SearchSystem9530642569; SearchSystem4877790286; SearchSystem8104932799; SearchSystem2313134663; SearchSystem1545325372; SearchSystem7742471461; SearchSystem9092363703; SearchSystem6992236221; SearchSystem3507700306; SearchSystem1129983453; SearchSystem1077927937; SearchSystem2297142691; SearchSystem7813572891; SearchSystem5668754497; SearchSystem6220295595; SearchSystem4157940963; SearchSystem7656671655; SearchSystem2865656762; SearchSystem6520604676; SearchSystem4960161466; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) SearchSystem7742471461; SearchSystem9092363703; SearchSystem6992236221; SearchSystem3507700306; SearchSystem1129983453; SearchSystem1077927937; SearchSystem2297142691; SearchSystem7813572891; SearchSystem5668754497; SearchSystem6220295595; SearchSystem4157940963; SearchSystem7656671655; SearchSystem2865656762; SearchSystem6520604676; SearchSystem4960161466; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) SearchSystem7742471461; SearchSystem9092363703; SearchSystem6992236221; SearchSystem3507700306; SearchSystem1129983453; SearchSystem1077927937; SearchSystem2297142691; SearchSystem7813572891; SearchSystem5668754497; SearchSystem6220295595; SearchSystem4157940963; SearchSystem7656671655; SearchSystem2865656762; SearchSystem6520604676; SearchSystem4960161466; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)


15
Für diejenigen, die Punkte halten, sind das 1546 Zeichen, einschließlich der führenden und nachfolgenden Anführungszeichen.
Doug Harris

6

Es gibt kein angegebenes Limit, nur das Limit der meisten HTTP-Server. Unter Berücksichtigung dessen würde ich jedoch eine Spalte mit einer angemessenen festen Länge implementieren (verwenden Sie Google, um eine Liste bekannter Benutzeragenten zu finden, die größten zu finden und 50% hinzuzufügen) und einfach jeden Benutzeragenten zuschneiden, der zu lang ist - ausnahmsweise alle Long User Agent ist wahrscheinlich einzigartig genug, selbst wenn es beschnitten ist, oder ist das Ergebnis eines Fehlers oder eines "Hack" -Versuchs.


Die Standardlänge beträgt anscheinend 120-150, basierend auf networkhowtos.com/howto/common-user-agent-list . Daher würde ich die maximale Länge bei 200 beschneiden.
Gen b.

4

Ich habe heute diesen Benutzeragenten erhalten, der das Speicherfeld unseres Anbieters überfüllt:

Mozilla / 4.0 (kompatibel; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDR; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Lächerlich! 229 Zeichen?

Nehmen Sie also diese Größe, verdoppeln Sie sie, verdoppeln Sie sie erneut, und Sie sollten bis zum nächsten Fehler von Microsoft eingestellt sein (möglicherweise nächstes Jahr um diese Zeit).

Gehen Sie größer als 1000!


Ich frage mich, was .Net CLR und Trident mit Mozilla
Gherman

3

Ich gebe Ihnen die Standardantwort:

Nehmen Sie den größtmöglichen Wert, den Sie sich vorstellen können, verdoppeln Sie ihn, und das ist Ihre Antwort.


Wie groß wird es wohl sein?
JoshBerke

1
Natürlich zweimal, was auch immer ich denke. Obwohl 256 wie eine schöne runde Zahl zu verdoppeln scheint.
Ed Marty

4
Ich finde es lustig, wenn wir nicht wissen, was eine gute Länge wäre. Wir haben immer 256 oder ein anderes Vielfaches von 2.
JoshBerke

2
Nun, 512 klingt gut, das gibt mir mindestens 10 Jahre .net-Veröffentlichungen und anderen Müll, den ich ansammeln kann, und bis dahin hoffe ich, in den Ruhestand zu gehen.
Nochmals vielen

1
@Josh: "Bis dahin hoffe ich, in Rente zu sein" ... wo habe ich das schon mal gehört?! ;-)
Cerebrus

3

Angenommen, die Länge der Benutzeragentenzeichenfolge ist unbegrenzt, und bereiten Sie das Speichern eines solchen Werts vor. Wie Sie gesehen haben, ist die Länge unvorhersehbar.

In Postgres gibt es einen Texttyp , der Zeichenfolgen mit unbegrenzter Länge akzeptiert. Verwende das.

Höchstwahrscheinlich müssen Sie jedoch irgendwann mit dem Abschneiden beginnen. Nennen Sie es gut in einem einigermaßen nützlichen Schritt (200, 1k, 4k) und werfen Sie den Rest weg.


2

Hier ist eine, die 257 ist

Mozilla / 4.0 (kompatibel; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.04506.648 ; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)


Ich habe bisher bis zu 255 Zeichen auf einer Website mit sehr wenig Verkehr gesehen. Also nicht überraschend. .Net 4.0 fügt wahrscheinlich weitere 20 Zeichen hinzu.
JoshBerke

1

Kein Hinweis darauf, wie groß ein Benutzeragent werden kann, da es viele Antworten gibt, die die Randfälle zeigen, auf die er gestoßen ist, aber die längste, die auf http://www.useragentstring.com/pages/useragentstring.php zu finden ist? name = Alle waren 250 Bytes.

Mozilla / 4.0 (kompatibel; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.0; SLCC1; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C; Lunascape 6.3.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.