Protokolle von TeamSpeak 3

Dieses Dokument enthält Informationen zu allen Protokollen, die TeamSpeak außer Query und Sprache noch benutzt.

Ergänzungen und Obsoletes zum Thema TeamSpeak 3.1-beta1 und 2 sind farblich hervorgehoben.

Inhaltsverzeichnis

Updates

Updates erfolgen seit der finalen Version von 3.0.11 über das hier und bis 3.0.13.1 über das hier. Zum Einsatz kommt unverschlüsseltes HTTP, aber es gibt eine Signatur für alle INI-Dateien.

Als Listendateiformat kommt ein INI-Format zur Anwendung. Es ist an sich selbsterklärend. Später scheint zudem LZMA2 zur Anwendung zu kommen, 7-Zip kann diese Dateien aber nicht öffnen.

Das Dateiformat ist gzip, auch wenn man aufgrund der Erweiterung auf compress tippen würde.

Dateitransfers

Um eine Datei zu übertragen, schickt man den vom Server mittels ftinitupload oder ftinitdownload erhaltenen Schlüssel an die ebenfalls erhaltene IP und Port. Kein Escapen, nichts davor, nichts danach.

Wenn du etwas hochladen möchtest, schickst du anschließend die Daten einfach hinterher. Beim Herunterladen bekommst du die Daten vom Server geschickt.

TSDNS

Zur Verwendung von TSDNS wird die Eingabe in Kleinbuchstaben und anschließend in UTF-8 oder CESU-8 umgewandelt. Das wird dann ergänzt um die ASCII-Zeichen 10, 13, 13, 13, 10 (möglicherweise zur Unterstützung von TCP-Segmentierung, wobei der Server das nicht kann) einfach per TCP an den TSDNS-Server auf Port 41144 geschickt.

TSDNS gibt die IP zurück. Es gilt der erste Treffer in der Konfigurationsdatei. Soll der vom Nutzer angegebene Port beibehalten werden (er wird sonst überschrieben), wird $PORT als Port zurückgegeben. Kennt der Server das Ergebnis nicht (entweder durch absichtliches Setzen in der Konfiguration oder weil die DNS fehlt), gibt er den Text 404 zurück. Der TSDNS-Server kann sich auch entschließen, eine Anfrage nicht zu beantworten, sodass dann die Hierachie (siehe unten) weiter abgearbeitet wird. Das funktioniert nicht bei SRV TSDNS, wo die Nichtantwort eines TSDNS-Servers zum Scheitern der Verbindung führt. Daraus ergibt sich folgender Spezialfall: Das absichtliche Nichtbeantworten einer TSDNS-Anfrage ist äquivalent zum Scheitern, zumindest wenn nur ein TSDNS-Server vorhanden ist.

Für weitere Informationen empfiehlt sich das Lesen der TSDNS-Dokumentation und -Beispieldatei, welche dem Server beiliegen.

DNS-Auflösung

TeamSpeak hält sich nicht wirklich an irgendwelche RFCs. Das fängt schon bei den Grundlagen an: Der Client haut nämlich alle Lookups auf einmal raus (offenbar ist aber A vor AAAA), was per RFC verboten wurde. Er wartet dann bis zu 5 Sekunden und wertet anschließend das Ergebnis in der folgenden Reihenfolge aus:

  1. SRV TS3: Schlägt den SRV-Record von _ts3._udp.EINGABE nach. Der mittels SRV TS3 angegebene Port überschreibt die Eingabe des Benutzers.
  2. SRV TSDNS: Der Client schlägt den SRV-Record von _tsdns._tcp.EINGABE und entfernt nach und nach sämtliche Subdomains aus der Eingabe und schlägt dafür jeweils den SRV-Record _tsdns._tcp. nach. Im TeamSpeak-Client ist (außer in 3.1b1) eine Liste von Topleveldomains einprogrammiert (siehe Anhang), bis zu denen (diese nicht eingeschlossen!) die Ebenen entfernt werden. Also geht es dann nur bis zur zweiten Ebenen, ansonsten bis zur ersten Ebene. Domains, die nur auf dritter Ebene vergeben werden, werden trotzdem auf zweiter Ebene geprüft. Wenn du eine Domain für eine Website und mehrere auf einem anderen Server gehostete TeamSpeak-Server verwenden möchtest, ist SRV TSDNS deine einzige Möglichkeit, diese zu erreichen.
  3. TSDNS: Fragt die Eingabe bei beim TSDNS-Server unter EINGABE:41144 und allen höheren Domains (siehe SRV TSDNS) ab. IDNs werden auch beim abgefragten Server unterstützt.
  4. DNS: Fragt die eingegebene Domain per normalem AAAA-, A-Record ab. Das Nachschlagen des CNAME-Records erfolgt nur implizit.

Grundsätzlich ist TS sehr fehlertolerant, da es selbst auch viele Fehler macht. Beispielsweise kann SRV auf einen CNAME zeigen. SRV kann jedoch nicht auf eine IP zeigen.

Die nach der Reihenfolge oben erste vollständige Lösung wird anschließend verwendet. Es werden keine weiteren Auflösungen probiert, falls die Verbindung fehlschlägt. Eine Redudanz ist somit nicht möglich, lizenztechnisch nicht erlaubt und Serverduplikate werden vom Licensing-Server abgeschaltet.

SRV-Records

SRV ist die einfachste Möglichkeit, einen Port festzulegen. TeamSpeak unterstützt Weight, Priority und . (decidedly unavailable) nicht. IDNs werden bei Verwendung von SRV nicht in Punycode kodiert, sondern es werden folgende Umwandlungen durchgeführt:

  1. ASCII-Zeichen (<128) werden in Kleinbuchstaben umgewandelt.
  2. Der Text wird nach UTF-8 oder CESU-8 konvertiert.
  3. Alle Buchstaben werden in Kleinbuchstaben umgewandelt.
  4. Der Text wird nach UTF-8 oder CESU-8 konvertiert.

Das Ergebnis ist natürlich kompletter Blödsinn.

Mit Version 3.1b2 fallen die ersten beiden Umwandlungen weg. Stattdessen werden diese Umwandlungen auch für A benutzt.

Übersicht der DNS-Querys nach Client-Version

„∘“ ist als „nach“ zu lesen; die Auswertung erfolgt somit von unten nach oben. Man könnte die Funktionen also auch in eine Zeile schreiben, die Kringel durch öffnende Klammern ersetzen und schließende am Ende ergänzen.

Lowercase bezeichnet die Unicode-fähige Lowercase-Funktion, AsciiLowercase diejenige Funktion, die nur ASCII-Zeichen zu Kleinbuchstaben macht und den Rest übernimmt.

VersionDNS-AAAA-RR-QueryDNS-A-RR-QueryDNS-SRV-RR-QueryTSDNS-Query
3.0.0-b37 (21 Dec 2010)AsciiLowercase
3.0.0-rc1 (10 May 2011)AsciiLowercaseUTF8Encode∘
AsciiLowercase
3.0.0-rc2 (08 Jun 2011)
bis
3.0.7 (21 Jun 2012)
PunycodeEncode∘
AsciiLowercase
UTF8Encode∘
AsciiLowercase
3.0.8 (12 Jul 2012)
bis
3.0.16 (04 Aug 2014)
PunycodeEncode∘
AsciiLowercase
UTF8Encode∘
Lowercase∘
UTF8Encode∘
AsciiLowercase
UTF8Encode∘
AsciiLowercase
3.0.17 (04 Aug 2015)
bis
3.0.19.4 (14 Jul 2016)
PunycodeEncode∘
Lowercase
UTF8Encode∘
Lowercase∘
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
3.0.20 (10 Jun 2016)
gab’s nur für Win32
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
+0x0A0D0D0D0A
3.1-b1 (17 Aug 2016)
bis
3.1-b2 (26 Aug 2016)
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
UTF8Encode∘
Lowercase
+0x0A0D0D0D0A
3.1-b3 (29 Sep 2016)PunycodeEncode∘
Lowercase
PunycodeEncode∘
Lowercase
PunycodeEncode∘
Lowercase
UTF8Encode
+0x0A0D0D0D0A
3.1-b4 (13 Oct 2016)PunycodeEncode∘
Lowercase
PunycodeEncode∘
Lowercase
PunycodeEncode∘
Lowercase
UTF8Encode∘
Lowercase
+0x0A0D0D0D0A

Anmerkungen:

Welches System ist das beste für mich?

Je nachdem, wie viele Server du hast, welche Ports sie nutzen und ob du andere Dienste wie eine Website auf derselben Domain (Subdomains sind eigene Domains) hast, ergeben sich unterschiedliche Konstellationen. Die entsprechende Übersicht gibt es als Diagramm und als Tabelle.

Als Diagramm

Diagramm: Welche Art von DNS passt zu deinem TeamSpeak-3-Server?

Als Tabelle

Die folgende Tabelle listet das effizienteste System auf, um dein Ziel zu erreichen. Es sind jeweils weitere möglich (außer im Fall unten rechts), aber nicht zu empfehlen.

ServerDie Dienste auf der Domain (inkl. TS) befinden sich auf...
...derselben IP...unterschiedlichen IPs
1 Server
Standardport
A oder CNAMESRV TS3
1 Server
anderer Port
Portangabe nicht nötig
SRV TS3SRV TS3
mehrere Server
-oder-
1 Server
anderer Port
Portangabe nötig
A oder CNAMESRV TSDNS

Wie man sieht ist TSDNS allein völlig sinnlos. Es ist als SRV TSDNS allerdings deine einzige Möglichkeit, wenn du einen anderen Dienst wie beispielsweise eine Website auf einer anderen IP besitzt über ihre Domain Server mit verschiedenen Ports ansprechen möchtest.

Blacklist

Der Client schickt ein Paket mit dem Text ip4: gefolgt von der aufgelösten IP-Adresse als Text per UDP an blacklist.teamspeak.com:17385.

Zurück erhält man stets ein Paket mit 13 ASCII-Zeichen des Formats x,13371337133, wobei x den Status angibt:

Weitere Informationen finden sich im Forum.

Erhält der Client keine Antwort, verbindet er sich trotzdem. Das liegt wohl daran, dass der Blacklist-Server oft geDDoSt wird/wurde.

Beispiel 1

Anfrage: ip4:212.224.114.71

Antwort: 1,13371337133

Beispiel 2

Anfrage: ip4:84.200.62.245

Antwort: 2,13371337133

Beispiel 3

Anfrage: ip4:2a02:2970:1002::9eea

Antwort: keine

Weblist (Server)

Das Weblist-Reporting läuft mittels UDP an weblist.teamspeak.com:2010. Der Aufbau eines Pakets ist immer gleich und zwar wie folgt:

  1. 1 Byte: immer 1 (Version?)
  2. 2 Bytes: fortlaufende Nummer (identisch für Anfrage und Antwort, beginnt bei 1)
  3. 1 Byte: Paket-Typ (1 für Schlüssel-Anforderung, 2 für Daten)
  4. Nutzlast (optional)

Die Aktualisierung des Weblist-Eintrags erfolgt stets in folgenden vier Schritten:

  1. Als erstes wird ein Schlüssel angefordert, indem entsprechendes Paket ohne Nutzlast geschickt wird.
  2. Der Schlüssel wird zurückgegeben und ist eine zufällige 32-Bit-Zahl. Man erhält stets eine neue Version
  3. Die Serverdaten werden durch folgende Nutzlast aktualisiert:
    1. 4 Bytes: gerade erhaltener Schlüssel
    2. 2 Bytes: Port
    3. 2 Bytes: Slots
    4. 2 Bytes: Clients (ohne Query-Clients)
    5. 1 Byte: Flags
      1. 6 Bits: immer 0
      2. 1 Bit: 1 falls Gast einen Channel erstellen kann (hierbei ist es egal, was für ein Channel-Typ erstellt werden kann), 0 falls nicht
      3. 1 Bit: 1 falls der Server ein Passwort hat, 0 falls nicht
    6. 1 Byte: Länge des Servernamens in Bytes, 0 falls nicht geändert
    7. Servername in UTF-8 oder CESU-8
  4. Als Antwort erhält man ein Paket mit einem Byte als Nutzlast. Der Wert 0 steht für OK. Hat der Weblist-Server einen zwischenzeitlich vergessen, z.B. weil es zu Fehlern kam, fordert er mit einer 7 den Servernamen an.

Die Byte-Folge ist Little Endian, die Bitfolge (auch für die Flags) ist Big Endian.

Der TS3-Server unternimmt alle 10 Minuten einen Versuch, die Serverliste zu aktualsieren. Erhält er keine Antwort, versucht er es nach 1,3 Sekunden erneut. Erhält er wieder keine Antwort, versucht er es weitere 2 Sekunden später erneut. Beide Male wird die Paket-ID nicht weiter hochgezählt. Erhält er auch diesmal keine Antwort, lässt er es bleiben. Das Intervall von 10 Minuten wird dadurch nicht verschoben.

Wird ein virtueller Server heruntergefahren, wird dies der Serverliste nicht mitgeteilt.

Weblist (Client)

Die Weblist-Abfrage läuft mittels TCP an weblist.teamspeak.com:2010.

Mit mehr habe ich mich noch nicht befasst.

Abzeichen (Badges)

Abzeichen werden auf dem Server als GUID gespeichert. Außer der GUID wird aber für den Abruf der Bilder, die im Ordner cache\badges gecacht werden, noch ein Dateiname benötigt, der auch einzig und allein den Dateinamen im Cache angibt.

Diese Dateinamen stehen in einer Liste. Diese Liste ist binär kodiert und wird unverändert (als varchar) in der Datei settings.db gespeichert. In derselben Tabelle (badges) wird auch ein Timestamp gespeichert, der entgegen des Namens nicht den Timestamp der Liste angibt sondern die Zeit, zu der sie neu heruntergeladen werden soll. Dies ist derzeit (3.1b6) 24 Stunden nach dem Download. Beide Informationen (Daten und Timestamp) sind jeweils mit einem Timestamp versehen, ohne dass ich dessen Sinn wüsste.

Das Dateiformat

Längenangaben sind exklusive sich selbst und Strings sind ASCII-Strings (bzw. wohl eher UTF-8).

  1. 1 Byte: 0x08
  2. 11 Bytes: unbekannt (eventuell Dummy-Eintrag?)
  3. Für jedes Abzeichen
    1. 1 Byte: 0x1A
    2. 2 Bytes: unbekannt
    3. 2 Bytes: 0x010A
    4. 1 Byte: Länge GUID (weil GUIDs immer 36 Zeichen lang sind, immer 0x24)
    5. GUID
    6. 1 Byte: 0x12
    7. 1 Byte: Länge Name
    8. Name (wird im myTeamSpeak-Abzeichen-Fenster angezeigt)
    9. 1 Byte: 0x1A
    10. 1 Byte: Länge URL
    11. URL (wird um _64.png für das Abzeichen-Fenster bzw. _16.png für den Serverbaum ergänzt)
    12. 1 Byte: 0x22
    13. 1 Byte: Länge Beschreibung
    14. Beschreibung (wird beim Hovern im Serverbaum angezeigt)
    15. 1 Byte: 0x28
    16. 1 Byte: unbekannt (aber ich vermute, dass das 32er-Bit angibt, ob jetzt 10 (0) oder 11 (1) Bytes kommen)
    17. 10 oder 11 Bytes: unbekannt

Liste der Abzeichen

TeamSpeak Addon AuthorTeamSpeak Addon AuthorTeamSpeak Addon Author
Creator of TeamSpeak Addons
GUID: 1cb07348-34a4-4741-b50f-c41e584370f7
URL-Basis: http://badges-content.teamspeak.com/1cb07348-34a4-4741-b50f-c41e584370f7/addon_author
Gamescom 2016Gamescom 2016Gamescom 2016
Registered during Gamescom 2016
GUID: 50bbdbc8-0f2a-46eb-9808-602225b49627
URL-Basis: http://badges-content.teamspeak.com/50bbdbc8-0f2a-46eb-9808-602225b49627/gamescom_2016
Paris Games Week 2016Paris Games Week 2016Paris Games Week 2016
Registered during Paris Games Week 2016
GUID: d95f9901-c42d-4bac-8849-7164fd9e2310
URL-Basis: http://badges-content.teamspeak.com/d95f9901-c42d-4bac-8849-7164fd9e2310/paris_gamesweek_2016

Das Gamescom-Symbol zeigt den Kölner Dom. Für die Gamescom- und PGW-Abzeichen reichte es, sich zu der Zeit zu registrieren. Da myTeamSpeak (damals noch My TeamSpeak) am 17. August (Gamescom-Mittwoch) herauskam, dürften viele Abonnenten des Betakanals dieses Abzeichen haben.

Alte Abzeichen

Diese nicht offiziellen Abzeichen wurden am 16. Februar 2017 entfernt. Man konnte sie auch in der Beta nicht erhalten.

Bild fehltCoolest Hat (entfernt Ende November 2016)Coolest Hat
This user won the Coolest Hat Award.
GUID: 17dfa0dc-b6e6-42fd-8c9c-b7d168f0823e
URL-Basis: http://badges-content.teamspeak.com/hat
Best Bug HunterBest Bug Hunter (entfernt am 16. Februar 2017)Best Bug Hunter
This user won the Best Bug Hunter Award.
GUID: ef85ab02-8236-4e38-96cb-02c73789734f
URL-Basis: http://badges-content.teamspeak.com/bug
Informed UserInformed User (entfernt am 16. Februar 2017)Informed User
This is a certified informed TeamSpeak user.
GUID: facee3a7-1db0-4493-a5cf-24c9f938d35d
URL-Basis: http://badges-content.teamspeak.com/info
I'm a ScannerI'm a Scanner (entfernt Ende November 2016)I'm a Scanner
This user is a flatbed scanner.
GUID: c9a170ca-62c2-47bf-990b-db75a5d7b086
URL-Basis: http://badges-content.teamspeak.com/scanner
I'm a FloppyI'm a Floppy (eingeführt Ende November 2016, entfernt am 16. Februar 2017)I'm a Floppy
This user is a floppy disk.
GUID: c9a170ca-62c2-47bf-990b-db75a5d7b086
URL-Basis: http://badges-content.teamspeak.com/floppy

Die Beta-Abzeichen mit Ausnahme des Hutes stammen aus dem Oxygen-Satz von KDE. Woher der Hut kommt, weiß ich nicht.

Anhang

Liste der Toplevel-Domains (3.1-b2+)

siehe hier

Anders als in 3.0.x löst TeamSpeak 3.1 (inkl. 3.1-b1) grundsätzlich keine Toplevel-Domains auf. Das ergibt Sinn, weil wohl kaum jemand in seinem lokalen Netzwerk Second-Level-Domains (also Domainnamen mit Punkt) und eine SRV-fähige Namensauflösung verwendet.

In 3.1-b2 ist dann die oben verlinkte Liste enthalten. Obwohl Toplevel-Domains nicht aufgelöst werden, sind ausschließlich auf zweiter Ebene vergebene Domains in der Liste enthalten, die im Client gespeichert ist. Die Liste ist im Client übrigens im Punycode-Format gespeichert. Der Client unterstützt seit 3.0.20 Punycode allerdings überhaupt nicht mehr.

Liste der Toplevel-Domains (3.0.x)

Stand dieser in Clientversion 3.0.18.1 (und vermutlich allen anderen) enthaltenen Liste ist Anfang Oktober 2007. Es fehlen einige der seither eingeführten TLDs (.xxx, .post, beide St. Martins (wobei eine davon nicht zugewiesen ist), Saint-Barthélemy), sämtliche neuen TLDs und die inzwischen entstandenen Länder wie Südsudan und die Nachfolgestaaten der Niederländischen Antillen. Es fehlen Domains, die nicht verwendet werden (.um, .eh), die nicht mehr vorhandene TLD .an ist wegen des Alters der Liste noch enthalten. Auch .gb ist enthalten.

Die Test-IDNs sind Domains, die das Wort „Test“ in verschiedenen Sprachen und Schriften enthalten. Einzige Domain war das entsprechende Wort für „Beispiel“. Auch diese TLDs gibt nicht mehr, genauer gesagt seit dem 31. Oktober 2013.

DomainIDN-KlartextSprache (ggf. Schrift)Bedeutung [Gebiet abhängig von]
aeroLuftfahrt
arpaArpanet
asiaAsien
biz
catKatalonien [Spanien]
com
coopGenossenschaften
eduVereinigte Staaten
govVereinigte Staaten
info
intInternationale Organisationen
jobsJobs
milVereinigte Staaten
mobiMobile Websites
museumMuseen
name
net
org
pro
telKontaktinformationen
travelReise
acVereinigtes Königreich
adAndorra
aeVereinigte Arabische Emirate
afAfghanistan
agAntigua und Barbuda
aiAnguilla [Vereinigtes Königreich]
alAlbanien
amArmenien
anNiederländische Antillen (existiert nicht mehr)
aoAngola
aqAntarktis
arArgentinien
asAmerikanisch-Samoa [Vereinigte Staaten]
atÖsterreich
auAustralien
awAruba [Niederlande]
axÅland [Finnland]
azAserbaidschan
baBosnien und Herzegowina
bbBarbados
bdBangladesch
beBelgien
bfBurkina Faso
bgBulgarien
bhBahrain
biBurundi
bjBenin
bmBermuda [Vereinigtes Königreich]
bnBrunei
boBolivien
brBrasilien
bsBahamas
btBhutan
bvBouvetinseln [Norwegen]
bwBotswana
byWeißrussland
bzBelize
caKanada
ccKokosinseln [Australien]
cdDemokratische Republik Kongo-Kinshasa
cfZentralafrikanische Republik
cgRepublik Kongo-Brazzaville
chSchweiz
ciElfenbeinküste
ckCookinseln [Neuseeland]
clChile
cmKamerun
cnChina
coKolumbien
crCosta Rica
cuKuba
cvKap Verde
cxWeihnachtsinsel [Australien]
cyZypern
czTschechien
deDeutschland
djDschibuti
dkDänemark
dmDominica
doDominikanische Republik
dzAlgerien
ecEcuador
eeEstland
egÄgypten
erEritrea
esSpanien
etÄthiopien
euEuropa
fiFinnland
fjFidschi
fkFalklandinseln [Vereinigtes Königreich]
fmFöderierte Staaten von Mikronesien
foFäröer [Dänemark]
frFrankreich
gaGabun
gbVereinigtes Königreich
gdGrenada
geGeorgien
gfFranzösisch-Guayana
ggGuernsey [Vereinigtes Königreich]
ghGhana
giGibraltar [Vereinigtes Königreich]
glGrönland [Dänemark]
gmGambia
gnGuinea
gpGuadeloupe [Frankreich]
gqÄquatorialguinea
grGriechenland
gsSüdgeorgien und die Südlichen Sandwichinseln [Vereinigtes Königreich]
gtGuatemala
guGuam [Vereinigte Staaten]
gwGuinea-Bissau
gyGuyana
hkHongkong [China]
hmHeard und McDonaldinseln [Australien]
hnHonduras
hrKroatien
htHaiti
huUngarn
idIndonesien
ieRepublik Irland
ilIsrael
imInsel Man [Vereinigtes Königreich]
inIndien
ioBritisches Territorium im Indischen Ozean [Vereinigtes Königreich]
iqIrak
irIran
isIsland
itItalien
jeJersey [Vereinigtes Königreich]
jmJamaika
joJordanien
jpJapan
keKenia
kgKirgisistan
khKambodscha
kiKiribati
kmKomoren
knSt. Kitts und Nevis
kpNordkorea
krSüdkorea
kwKuwait
kyKaimaninseln [Vereinigtes Königreich]
kzKasachstan
laLaos
lbLibanon
lcSt. Lucia
liLiechtenstein
lkSri Lanka
lrLiberia
lsLesotho
luLuxemburg
ltLitauen
lvLettland
lyLibyen
maMarokko
mcMonaco
mdMoldau
meMontenegro
mgMadagaskar
mhMarshallinseln
mkMazedonien
mlMali
mmMyanmar
mnMongolei
moMacau [China]
mpNördliche Marianen [Vereinigte Staaten]
mqMartinique [Frankreich]
mrMauritanien
msMontserrat [Vereinigtes Königreich]
mtMalta
muMauritius
mvMalediven
mwMalawi
mxMexiko
myMalaysia
mzMosambik
naNamibia
ncNeukaledonien [Frankreich]
neNiger
nfNorfolkinsel [Australien]
ngNigeria
niNicaragua
nlNiederlande
noNorwegen
npNepal
nrNauru
nuNiue [Neuseeland]
nzNeuseeland
omOman
paPanama
pePeru
pfFranzösisch-Polynesien [Frankreich]
pgPapua-Neuguinea
phPhilippinen
pkPakistan
plPolen
pmSaint-Pierre und Miquelon [Frankreich]
pnPitcairninseln [Vereinigtes Königreich]
prPuerto Rico
psPalästinensische Autonomiegebiete [Israel]
ptPortugal
pwPalau
pyParaguay
qaKatar
reRéunion [Frankreich]
roRumanien
rsSerbien
ruRussland
rwRuanda
saSaudi-Arabien
sbSalomoninseln
scSeychellen
sdSudan
seSchweden
sgSingapur
shSt. Helena [Vereinigtes Königreich]
siSlowenien
sjSpitzbergen und Jan Mayen [Norwegen]
skSlowakei
slSierra Leone
smSan Marino
snSenegal
soSomalia
srSuriname
stSão Tomé und Príncipe
suRussland
svEl Salvador
sySyrien
szSwasiland
tcTurks- und Caicosinseln [Vereinigtes Königreich]
tdTschad
tfFranzösische Süd- und Antarktisgebiete [Frankreich]
tgTogo
tjThailand
tkTadschikistan
tlTokelau [Neuseeland]
tmOsttimor
tnTurkmenistan
tpTunesien
toTonga
trTürkei
ttTrinidad und Tobago
tvTuvalu
twRepublik China [China]
tzTansania
uaUkraine
ugUganda
ukVereinigtes Königreich
usVereinigte Staaten
uyUruguay
uzUsbekistan
vaVatikanstadt
vcSt. Vincent und die Grenadinen
veVenezuela
vgBritische Jungferninseln [Vereinigtes Königreich]
viAmerikanische Jungferninseln [Vereinigte Staaten]
vnVietnam
vuVanuatu
wfWallis und Futuna [Frankreich]
wsWestsamoa
yeJemen
ytMayotte [Frankreich]
zaSüdafrika
zmSambia
zwSimbabwe
xn--fiqs8s中国Chinesisch (vereinfacht)China
xn--fiqz9s中國Chinesisch (traditionell)China
xn--fzc2c9e2cලංකාSinhalaSri Lanka
xn--j6w193g香港ChinesischHongkong [China]
xn--kprw13d台湾Chinesisch (vereinfacht)Republik China [China]
xn--kpry57d台灣Chinesisch (traditionell)Republik China [China]
xn--mgbaam7a8hاماراتArabischVereinigte Arabische Emirate
xn--mgbayh7gpaالاردنArabischJordanien
xn--mgberp4a5d4arالسعوديةArabischSaudi-Arabien
xn--o3cw4hไทยThaiThailand
xn--p1aiрфRussisch (kyrillisch)Russland
xn--pgbs0dhتونسArabischTunesien
xn--wgbh1cمصرArabischÄgypten
xn--wgbl6aقطرArabischKatar
xn--xkc2al3hye2aஇலங்கைTamilSri Lanka
xn--ygbi2ammxفلسطينArabischPalästinensische Autonomiegebiete [Israel]
xn--0zwm56d测试Chinesisch (vereinfacht)IDN-Test
xn--11b5bs3a9aj6gपरीक्षाHindi (Devanagari)IDN-Test
xn--80akhbyknj4fиспытаниеRussisch (kyrillisch)IDN-Test
xn--9t4b11yi5a테스트Koreanisch (Hangul)IDN-Test
xn--deba0adטעסטJiddisch (hebräisch)IDN-Test
xn--g6w251d測試Chinesisch (traditionell)IDN-Test
xn--hgbk6aj7f53bbaآزمایشیPersischIDN-Test
xn--hlcj6aya9esc7aபரிட்சைTamilIDN-Test
xn--jxalpdlpδοκιμήGriechischIDN-Test
xn--kgbechtvإختبارArabischIDN-Test
xn--zckzahテストJapanischIDN-Test