1.2 Pobieranie danych o serwerze
Nim się połączymy z serwerem Tlenu, musimy posiadać potrzebne nam dane na jego temat. Wszakże musimy wiedzieć z czym się mamy połączyć ;)
Za pomocą protokołu HTTP pobierzemy interesujące nas dane, więc zaczynajmy.
Łączymy się z serwerem idi.tlen.pl na porcie 80. Następnie wysyłamy do niego zapytanie o dane serwera. Wraz z rozwojem protokółu Tlena, zmieniało (rozwijało) się także pobieranie danych na temat serwera.
W najprostszym wypadku wystarczy wysłać następujące zapytanie:
GET /4starters.php HTTP/1.0
Host: idi.tlen.pl
czyli wystarczy pobrać zawartość strony http://idi.tlen.pl/4starters.php.
W odpowiedzi na nasze zapytanie, serwer zwróci nam informacje o serwerze tlenowym w formacie XML. Format odpowiedzi przedstawia się następująco:
<tlen/><s>s1.tlen.pl</s><p>443</p><v>91</v><c>0</c>
Tag s i p, jak można się łatwo domyślić zawierają nazwę hosta i port serwera Tlenu. Zawartość tagów v i c jest bliżej nieznana, aczkolwiek prawdopodobnie zawartość v określa najnowszą, dostępną wersje zapytania o czym sami się później przekonamy analizując przedstawione w tym rozdziale dane.
Powyższe zapytanie nie jest zalecane, lepiej użyć któregoś z poniższych.
Preferowane zapytanie przedstawia się następująco:
GET /4starters.php?u=malcom&v=10&m=1 HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
User-Agent: Mozilla/3.0 (compatible)
Host: idi.tlen.pl
W zmiennej u podajemy nasz login tlenowy. Od zawartości zmiennej v zależy wersja otrzymanej odpowiedzi na zadane zapytanie. Zmienna m jest nieznana, można ja pominąć w zapytaniu.
Poniżej zestawiono kilka znanych wartości poszczególnych zmiennych w zależności od wersji komunikatora.
| v | m | klient |
| 41 | 2 | Tlen.pl 3.90 |
| 46 | 3 | Tlen.pl 4.10 |
| 59 | 2 | Tlen.pl 5.00.1.1 |
| 86 | 1 | Tlen.pl 5.50.1.1 |
| 91 | 1 | Tlen.pl 6.00.2.4 |
Nagłówki Accept i User-Agent protokółu HTTP są opcjonalne, można je pominąć, oryginalny klient je wysyła. W dalszej części rozdziału będą pominięte ;)
W odpowiedzi na powyżej przedstawione zapytanie, serwer zwróci nam informacje w formacie XML, zależnie od wartości zmiennej v.
Dla wartości mniejszej od 10 odpowiedz będzie taka sama jak w uproszczonym zapytaniu przedstawionym na początku rozdziału.
Przy wartościach z przedziału 10-12 odpowiedż będzie następująca:
<t s="s1.tlen.pl" p="443" v="91" c="0" i="83.5.30.88">91</t>
Zawartość atrybutów s i p jest już nam znana, jest to nazwa hosta serwera Tlenu dla naszego połączenia oraz port, z którym powinniśmy się łączyć. Również o v i c już wspominaliśmy.
Nowością jest parametr i zawierający adres IP, z którego wysłaliśmy zapytanie.
Zawartość głównego tagu <t></t> jest taka sama jak wartość atrybutu v.
Dla v powyżej 12 odpowiedź nie zawiera już zawartości głownego taga.
Dla wartości 24-44 dodatkowo wartość c uległa zmianie z dotychczasowej wartości 0 na 1.
Od wersji 45 wprowadzono dodatkowy atrybut r określający adres IP serwera. Także po raz kolejny uległa zmianie wartość atrybutu c, która przyjmuje obecnie wartość 16. Całość przedstawia się następująco:
<t s="s1.tlen.pl" p="443" r="193.17.41.53" v="91" c="16"
i="83.5.30.88"/>
Aktualnie, od wersji 75 (do aktualnej - 91), odpowiedź została wzbogacona o kolejny nowy atrybut oznaczony h, którego zawartość nie jest nam jeszcze znana:
<t s="s1.tlen.pl" p="443" r="193.17.41.53" v="91" c="16"
h="585C5D" i="83.5.30.88"/>
Prawdopodobnie od wersji 5.50.1.1 klienta Tlen.pl wprowadzono dodatkową, nową zmienną w zapytaniu, które obecnie przyjmuje postać (z pominięciem dodatkowych nagłówków HTTP):
GET /4starters.php?u=malcom&v=91&m=1&sid=standardowy HTTP/1.0
Host: idi.tlen.pl
Tym nowym parametrem jest sid. Wartość tej zmiennej określa używaną przez nas skórkę. Ciekawe, po co taka informacja?