Protokół IRC dla opornych
Ten tekscik jest dedykowany tym, co chcieli się dowiedzieć czegoś o protokole IRC
z RFC1459 :-). Jedyne co pozostało w mojej głowie po jego przyczytaniu to mętlik...
Kolejny raz sprawdziła się zasada, że jeśli coś ma być zrobione dobrze, to trzeba
zrobic to samemu. Protokół okazał się tak prosty, że jest to aż śmieszne. Poniższy
opis pokaże jak krok po kroku wysłać pierwszą wiadomość na dowolny kanał. Disklejmer:
Proszę specjalistów o powstrzymanie się od komentarzy na temat tego tekstu. Jest on
napisany tak, by każdy mógł w możliwie jak najłatwiejszy sposób zrozumieć podstawy IRC.
Podstawy
Serwer IRC zwykle siedzi na porcie 6667, chociaż większe maszyny udostępniają tą
usługę na kilku portach, najczęściej od portu 6660. IRC operuje na protokole TCP
i nie wymaga wielkich manipulacji jak to jest w przypadku ICQ.
Przedstawmy się
Pierwszym poleceniem jakie powinieneś wysłać jest polecenie NICK, które informuje
serwer, jakiego nicka chcesz używać. Pominę możliwości wystąpienia błędów, np. jeśli
nick już istnieje. Postać tego polecenie jest baaardzo prosta:
NICK
-- postać polecenia
NICK ^wojtekka -- przykład
Kolejnym krokiem jest wysłanie infomacji o samym użytkowniku. Do tego celu służy
polecenie USER. Składnia nie jest już aż tak prosta, ale problemu nie powinno być ;-)
USER "" "" :
USER wojtekka wojtekka "poznan.irc.pl" :wojtek kaniewski
Tutaj wypadałoby wyjaśnić do czego służą kolejne parametry. jest częścią
adresu użytkownika wyświetlaną przed małpką. zbyt dużo serwerowi nie daje,
gdyż informuje go jak nazywa się nasz host. W przypadku mIRCa wysyłana jest nazwa
komputera. jest adresem naszego serwera IRC. A ? domyśl się sam...
Jeśli wszystkie podane informacje są w porządku, serwer powinien wysłać do nas garść
informacji. Zwykle jest to wersja serwera, ilość użytkowników i tak zwany MOTD -
Message Of The Day (wiadomość dnia), który zwykle informuje jakie są zasady użytkowania
serwera. Format zwracanych informacji wygląda tak:
:
:poznan.irc.pl 001 ^wojtekka :Welcome to the IRC ^wojtekka
PING :poznan.irc.pl
Zeby zbytnio nie zanudzać nieprzydatną teorią, podam kilka przykładowych informacji
od serwera:
:_CeRbEr_!^cerber@beta.cku.pwr.wroc.pl JOIN :#hackpl
_CeRbEr_ wszedł na kanał #hackpl
:_CeRbEr_!^cerber@beta.cku.pwr.wroc.pl QUIT :Ping Timeout
Ten sam _CeRbEr_ wyleciał z IRCa :-)
:spaceman^!^space@beta.cku.pwr.wroc.pl PRIVMSG #hackpl ::)
spaceman powiedział " :) " na kanale
PING :poznan.irc.pl
Serwer chce, żebym potwierdził przytomność.
Na to zwykle odpowiadamy PONG :poznan.irc.pl :-)
:abc!abc@abc.blah.pl PRIVMSG #hackpl :\001ACTION wrocil :)\001
abc wpisał /me wrocil :).
:zero!zero@nowhere NOTICE ^wojtekka :\001VERSION mIRC v6.01\001
'zero' zwrócił informację /CTCP VERSION.
Chyba raczej większość przykładów nie wymaga zbyt wielu wyjaśnień, oprócz dwóch
ostatnich. Znak \001 należy zastąpić znakiem o kodzie ASCII równym 1. Oznacza on
początek informacji CTCP (client to client protocol). Pierwszy wyraz po znaku \001
oznacza rodzaj informacji. Cała komenda musi również być zakończona \001 :-).
Teraz kilka przykładowych komend, które my możeby wysłać:
JOIN #hackpl
PRIVMSG #hackpl :helou :)
PRIVMSG #hackpl :\001ACTION wita ponownie\001
PRIVMSG nobody :\001PING\001
PING :nazwa.twojego.serwera
QUIT :Bo mi sie IRC znudził
Te kilka przykładów powinno wystarczyć do napisania prostego klienta IRC. Jeśli
jesteś żądny wiedzy, polecam lekturę RFC1459 - kompletnego opisu protokołu IRC.
bY cZEPO
Wyszukiwarka
Podobne podstrony:
IRC BONUS bot, A REQ!!
Irc program dnia
IRC
IRC
irc freenode gentoo trustees conflict
irc
hakowanie na irc
irc
IRC Adiction
irc
IRC (2)
więcej podobnych podstron