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.

vmklient
412Tlen.pl 3.90
463Tlen.pl 4.10
592Tlen.pl 5.00.1.1
861Tlen.pl 5.50.1.1
911Tlen.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?

Tę stronę ostatnio zmodyfikowano 12 lutego 2007 01:12:23