IRC/Wersja do druku
Z Wikibooks, biblioteki wolnych podręczników.
Internet Relay Chat
Aktualna, edytowalna wersja tego podręcznika jest dostępna w Wikibooks, bibliotece wolnych podręczników pod adresem
http://pl.wikibooks.org/wiki/IRC
Całość tekstu jest objęta licencją GNU Free Documentation License.
Czym jest IRC?
IRC, a właściwie Internet Relay Chat, to usługa sieciowa pozwalająca na tekstową rozmowę z innymi użytkownikami "na żywo".
Usługa funkcjonuje na zasadzie połączenia klient-serwer. Oznacza to, że użytkownicy komunikują się między sobą za pośrednictwem serwera. Serwery ułożone są w sieci - sieć to grupa serwerów, która jest ze sobą połączona aby użytkownicy podłączeni do tych serwerów mogli się ze sobą komunikować, niezależnie od tego do którego serwera w sieci są przyłączeni.
Do korzystania z IRC-a wymagany jest klient - program, który łączy się z serwerem i umożliwia prowadzenie rozmów. Istnieje wiele darmowych klientów dla każdego systemu operacyjnego, więc zdobycie takiego programu nie jest trudne.
Zwykle w sieci IRC użytkownicy nie używają swoich prawdziwych imion, lecz posługują się pseudonimami, czyli nick lub nickname.
Rozmowy prowadzone są na kanałach. Wiadomości wpisywane przez użytkowników obecnych na kanale są widoczne dla wszystkich, prowadzona jest wspólna rozmowa, jak na konferencji. Oprócz tego możliwe są rozmowy prywatne, jeden do jeden, a także przesyłanie plików.
IRC, w odróżnieniu od komunikatorów internetowych typu "Gadu-Gadu" jest nastawiony głównie na rozmowy w grupach i to stanowi jego istotę. Jego zaletą jest to, że jest to usługa nie związana z żadnym producentem oprogramowania czy firmą. Specyfikacja protokołu IRC jest całkowicie jawna. Oprogramowanie dla serwerów jest oparte na wolnych licencjach, dzięki czemu każdy kto dysponuje odpowiednią wiedzą i możliwościami sprzętowymi może sobie zestawić swoją własną sieć IRC.
IRC sprzyja tworzeniu spontanicznych społeczności, które mają swoje własne obyczaje, zasady i subkulturę. Uczestnictwo w tych społecznościach daje często poczucie określonej tożsamości, a w przypadku osób, które uzyskały wysoką pozycję w ich hierarchii poczucie władzy i satysfakcji.
Na świecie istnieje kilkanaście wielkich, publicznych sieci IRC i tysiące mniejszych, dostępnych publicznie lub tylko dla wybranych grup użytkowników.
Jak korzystać z podręcznika
Podręcznik jest nieco sztucznie podzielony na dwie sekcje, dla początkujących i dla zaawansowanych. W części dla początkujących założono, że jej czytelnik posiada jedynie elementarną wiedzę o internecie oraz nie wie zupełnie nic o IRC, protokołach internetowych i innych tego typu sprawach.
Osoby, które chcą używać IRC wyłącznie do prowadzenia rozmów i nie mają ambicji tworzenia czy zarządzania kanałami mogą w zasadzie ograniczyć swoją lekturę do rozdziału "Początki". Pobieżne przejrzenie rozdziału "Klienty" oraz "Najbardziej znane publiczne sieci IRC" pomoże im wybrać odpowiadający ich potrzebom program i sieć IRC. Aby uniknąć problemów typowych dla początkującego użytkownika IRC, być może warto zapoznać się jeszcze z rozdziałem "Netykieta i społeczności".
Osoby, które są zainteresowane bardziej świadomym korzystaniem z IRC powinny przeczytać wszystkie rozdziały z części "dla początkujących", gdzie bardziej szczegółowo omówione są najważniejsze komendy, przy pomocy których korzysta się z IRC oraz być może rozdział "Usługi DCC i CTCP", gdzie omówione jest m.in. jak przesyłać pliki. Jeśli zamierza się korzystać z sieci Undernet, DALnet, Freenode czy QuakeNet, warto się będzie zapoznać z rozdziałem "Dodatkowe serwisy". Rozdziały te zakładają podstawową wiedzę o IRC i ogólnie o protokołach internetowych, ich zrozumienie nie wymaga jednak zbyt zaawansowanej wiedzy na te tematy.
Rozdziały "Skrypty i boty" oraz "Protokół i jego odmiany" są pomyślane jako rodzaj wprowadzenia dla osób, które chciałyby głębiej wejść w zagadnienia techniczne związane z IRC. Można je potraktować jako wstęp do stania się "rasowym ircownikiem". Jakkolwiek nie ma tam szczegółowych instrukcji jak postawić własnego bota, czy jak postawić swoją własną sieć IRC, rozdziały te pomogą przynajmniej zorientować się jak się do tego zabrać.
W wielu miejscach tej "książki" rozproszone są także informacje o charakterze historycznym, opisujące rozwój IRC. Zwykle były one umieszczane głównie po to aby pomóc zrozumieć aktualny stan rozwoju tej usługi. Być może jednak będą też interesujące dla tych, którzy po prostu chcą coś wiedzieć o historii IRC.
Podstawy korzystania z IRC-a
Początki
IRC zraża do siebie ludzi, gdyż wiele osób uważa, że jest on bardzo skomplikowany w użyciu. Ten rozdział ma pomóc osobom, które chcą zacząć i wykazać, że nie jest to wcale takie trudne.
Aby zacząć użytkować IRC-a należy:
- pobrać z internetu bądź zdobyć w jakiś inny sposób program do IRC, tzw. klienta a następnie go zainstalować na swoim komputerze; obecnie istnieje kilkadziesiąt różnych tego rodzaju programów pod wszystkie systemy operacyjne i część jest bezpłatna; więcej na ten temat w rozdziale "Klienty"
- nauczyć się kilku podstawowych komend, które zostaną omówione pokrótce w tym rozdziale, a bardziej szczegółowo w dalszych
- wybrać sobie jedną z sieci IRC i zalogować się do jednego z jej serwerów; najbardziej znane publiczne sieci IRC są opisane w rozdziale "Najbardziej znane publiczne sieci IRC"
- po udanym zalogowaniu się, wejść na jeden z kanałów, które istnieją w tej sieci i zacząć po prostu rozmawiać z innymi; obsługa kanałów jest dokładniej opisana w rozdziale "Kanały".
Zaczynamy
Omówimy cały proces na przykładzie programu Chatzilla - ze względu na jego mały rozmiar, dostępność na wiele platform i bardzo łatwą instalację; nieistotne jest dla nas w tym momencie, czy jest lepszy czy gorszy od innych.
Chatzilla jest dodatkiem (pluginem) do przeglądarek Mozilla/Firefox. Ich użytkownicy muszą jedynie wejść na stronę addons.mozilla.org i wyszukać ten dodatek. Na stronie opisu Chatzilli znajdują się dalsze informacje.
Nie będziemy się tutaj zbyt dokładnie zagłębiać w działanie samego programu Chatzilla, gdyż wszystkie klienty IRC obsługuje się w sumie w dość podobny sposób, a ten został wybrany gdyż jest bezpłatny i stosunkowo prosty w obsłudze, więc na początek powinien wystarczyć. Później, w każdej chwili będziemy mogli popróbować też inne programy do IRC.
- Opis zadania
- Załóżmy, że naszym zadaniem jest wejść do sieci IRCnet na kanał o nazwie "#polska" i zamienić z siedzącymi tam ludźmi parę uwag, a później wybrać jedną osobę z tego kanału i porozmawiać z nią prywatnie na dowolny temat.
Krok 1: uruchamiamy program
Po uruchomieniu Chatzilli będziemy mieli taki widok jak na obrazku załączonym obok:
Duże białe pole u góry (1), to okno, w którym będą się pojawiały komunikaty przysyłane do nas przez ludzi lub serwer. Komunikaty te będą się przesuwały od dołu do góry i w momencie, gdy okno się nimi zapełni, będą od góry "uciekały za ekran".
Zaraz pod dużym oknem przeznaczonym na komunikaty znajduje się małe pole (2) przeznaczone do wpisywania przez nas komunikatów oraz komend, które będą wysyłane do serwera i dalej przez serwer do ludzi, z którymi będziemy rozmawiać.
Między tymi dwoma oknami znajduje się belka (3), w której są klawisze umożliwiające przełączanie się do kolejnych paneli. Chatzilla będzie otwierała nowe panele, gdy będziemy wchodzili na kolejne kanały lub rozpoczynali rozmowy z pojedynczymi osobami. Pierwszy panel, ten który teraz widzimy jest przeznaczony do komunikowania się z serwerem.
Jak odróżnić komendy od komunikatów
To co wysyłamy do serwera używając pola 2 dzieli się na komunikaty i komendy. Komendy od komunikatów odróżnia się przez znak / (ukośnik) na początku linii wysyłanego tekstu. Serwer uważa, że gdy tego znaku nie ma to, co wysyłamy jest prostym komunikatem przeznaczonym dla jakiejś osoby, a gdy ten znak jest to ma to interpretować jako jedną ze swoich komend.
W tej chwili nie jesteśmy jeszcze zalogowani do żadnego serwera, zatem zarówno nasze komendy jak i komunikaty będą trafiały w próżnię.
Komendy wysyłane na serwer są interpretowane i wykonywane przez serwer a nie przez nasz program. Stąd w gruncie rzeczy zestaw dostępnych komend nie zależy od naszego programu, lecz od tego co potrafi zrobić serwer. Wyjątkiem są tylko komendy, które służą do konfiguracji samego klienta oraz tzw. aliasy - czyli uproszczone komendy, które nasz program zamienia w niewidoczny dla nas sposób na bardziej złożone rozkazy zrozumiałe dla serwera.
- uwaga techniczna
- Od tej pory, będziemy trzymać się zasady, że wszystkie opisywane komendy będziemy poprzedzali znakiem / - którego przy próbach ich wykonania nie należy w żadnym wypadku pomijać. Trzeba koniecznie zapamiętać, że znak / musi być naprawdę pierwszy w komendzie, którą będziemy pisali - nie może być przed nim żadnego pustego miejsca ani innego znaku, nawet kropki. Należy też pamiętać, że po znaku / od razu zaczyna się komenda - nie należy po nim wpisywać żadnej spacji.
- druga uwaga techniczna
- Zarówno komendy jak i komunikaty są wysyłane do serwera po tym jak je wpiszemy do okna 2 i naciśniemy klawisz "enter", nie należy klawisza "enter" używać do rozpoczęcia następnej linii tekstu - IRC i tak pozwala na wysyłanie tylko jednej linii tekstu na raz.
Krok 2: łączymy się z serwerem
Aby połączyć się z serwerem sieci IRCnet z terenów środkowej i północnej Polski piszemy w oknie 2:
- /server warszawa.irc.pl
i przyciskamy klawisz "enter". Możemy też spróbować serwerów: krakow.irc.pl, lublin.irc.pl, poznan.irc.pl, jeśli mieszkamy bliżej tych miast. Połączenie trwa jakiś czas - czasem nawet do 2-3 minut, w czasie których nic się na naszym ekranie nie pokazuje. Gdy wreszcie zostaniemy połączeni serwer wyśle do nas komunikat wyglądający następująco:
Network view for “warszawa.irc.pl” opened. Attempting to connect to “warszawa.irc.pl”. Use /cancel to abort. Connecting to irc://warszawa.irc.pl/ (irc://warszawa.irc.pl/), attempt 1, next attempt in 15 seconds... Please wait while we process your connection. Welcome to the Internet Relay Network kazio_!~chatzilla@214.421.32.71 Your host is warszawa.irc.pl, running version 2.11.1p1 This server was created Tue Aug 2 2005 at 12:28:48 CEST There are 106591 users and 5 services on 41 serversm, 196 operators online, 54183 channels formed ============================================================ - Porty na serwerze warszawa.irc.pl: 6661 - 6667. - UWAGA: Zaleca sie uzywanie portow z zakresu 6661 - 6666. - - ------------------------------------------------------------ - - Inne serwery IRC w Polsce: - - krakow.irc.pl (6661-6667) - - lublin.irc.pl (6661-6667) - - poznan.irc.pl (6661-6667) - ------------------------------------------------------------ - - UWAGA klienci: - Prosimy nie używać więcej niż dwóch sesji jednocześnie. - - Zglaszanie naduzyc: abuse@irc.pl - Informacje dotyczace IRC: http://www.irc.pl - Interfejs WWW do bazy K:linii: http://www.irc.pl/kline - - ============================================================ - Admin zastrzega sobie prawo do usuniecia z serwera (K:line) - dowolnej sesji bez podania przyczyn. Jesli Ci sie to bardzo - nie podoba, to mozesz zmienic serwer, z ktorego korzystasz. - ============================================================ End of MOTD command. User mode for kazio_ is now +i
Krok 3: zmieniamy naszego nicka
W trakcie logowania do serwera program wybrał dla nas wstępnie jakiegoś przypadkowego nicka, czyli pseudonim, pod którym będziemy rozpoznawani przez innych w sieci. Nick ten widać na samym, dolnym, prawym rogu ekranu w polu (3). Jeśli nie podoba się nam ten nick i chcemy zamienić go na jakiś inny piszemy w polu 2 np:
- /nick poczatkujacy29
i po chwili serwer wyśle do nas komunikat, że nasz nick zmienił się na poczatkujacy29. Oczywiście, zamiast poczatkujacy29 - możemy sobie wybrać przy pomocy tej komendy jakiś inny nick.
- uwaga techniczna
- W nicku nie może być polskich liter oraz niektórych znaków specjalnych takich jak "?" "*" "@" i parę innych.
- druga uwaga techniczna
- Wybrany przez nas nick może być już przez kogoś używany. Wówczas serwer nie pozwoli nam wykonać tej komendy i zamiast tego przyśle ostrzeżenie, że należy sobie wybrać jakiś inny nick.
Krok 4: wchodzimy na kanał
Aby wejść na kanał "#polska" piszemy w oknie 2:
- /join #polska
W tym momencie Chatzilla otwiera nowy panel, w którym widać po lewej stronie listę nicków osób, które akurat na nim przebywają (5) a po prawej (1) okno, w którym pojawiają się wysyłane na ten kanał komunikaty.
- uwaga techniczna
- Osoby zaznaczone zielonymi kropkami na liście 5 to tzw. opy - czyli operatorzy kanału, którzy mają na nim pewne szczególne prawa, opisane dokładniej w rozdziale "Kanały".
- druga uwaga techniczna
- Nazwa prawie wszystkich kanałów zaczyna się od znaku "#". Istnieją też kanały zaczynające się od innych znaków specjalnych, ale początkowo się na nie raczej nie natkniemy.
Krok 5: gadamy sobie na kanale
Po pomyślnym wejściu na kanał możemy zacząć już na nim rozmawiać poprzez pisanie dowolnych tekstów w oknie 2 i przyciskanie po ich napisaniu klawisza "enter". Np:
- Czesc, jestem Kaziu, witam wszystkich zgromadzonych (enter)
co spowoduje, że na kanale pokaże się tekst:
<poczatkujacy29>: Czesc, jestem Kaziu, witam wszystkich zgromadzonych
i tekst ten zobaczą w ten sam sposób wszyscy inni uczestnicy kanału.
Nasze przywitanie może, ale nie musi wywołać reakcję w postaci przywitania nas przez innych, np. zobaczymy:
<mila> Hej, milo, ze tu wpadles
albo:
<niegrzeczny> Spadaj baranie
bo raczej nie oczekujmy, że na IRC-u zawsze, wszyscy będą dla nas mili. W ten sam sposób możemy dalej kontynuować rozmowę na kanale, do czasu, aż postanowimy z niego wyjść, co możemy uczynić komendą:
- /part #polska Do zobaczenia
co spowoduje zamknięcie panelu tego kanału, a na kanał zostanie wysłany komunikat, który zobaczą Ci co na nim zostali:
*<poczatkujacy29> left channel #polska (Do zobaczenia)
Oczywiście, zamiast "do zobaczenia" możemy napisać w komendzie /part coś innego.
- uwaga techniczna
- na różnych kanałach stosuje się różne sposoby kodowania polskich liter. Jeśli nasz program koduje je w inny sposób niż powszechnie przyjęty unikajmy pisania z użyciem "ą,ę,ś,ć,ó" itd. przynajmniej do czasu, aż nie dowiemy się jak dostosować nasz program do tego kodowania. Komunikaty osób, które piszą na tym kanale, stosując kodowanie UTF będą dla nas sprawiały wrażenie jakby zawierały niezrozumiałe "krzaki" - nie jest to wina tych osób ale nasza - bo nasz program nie jest jeszcze poprawnie skonfigurowany.
Krok 6: rozmawiamy prywatnie
Załóżmy, że do rozmowy prywatnej, poza kanałem, wybieramy sobie osobę o nicku cratus. Konwersację możemy zacząć przez wykonanie komendy:
- /query cratus Hej, to pojdzie do zrzutu ekranowego, powiedz cos milego
co spowoduje uruchomienie kolejnego panelu u nas i prawdopodobnie osobnego okna lub panelu w programie IRC, który używa cratus. W nowootwartym oknie cratusa pokaże się tekst:
- {poczatkujacy29} Hej, to pojdzie do zrzutu ekranowego, powiedz cos milego
Panel rozmowy prywatnej przypomina okno kanału, tyle, że nie zawiera listy użytkowników. W tym panelu możemy rozmawiać tak samo jak na kanale pisząc nasze komunikaty w okienku 2, które się będą ukazywały w dużym oknie 1. Tym razem będą one jednak trafiały wyłącznie do osoby o nicku cratus i do nikogo więcej.
Po zakończonej konwersacji możemy ją zakończyć klikając prawym klawiszem myszki na zakładkę panelu "cratus" i wybierając opcję "hide tab". W wielu innych program można zamknąć okno rozmowy prywatnej pisząc w polu komend:
- /query
Cratus nie dostanie od serwera żadnego komunikatu informującego go o tym fakcie, wypada zatem wcześniej go pożegnać.
Krok 7: wychodzimy
Gdy już się nam znudzi zabawa powinniśmy poprawnie opuścić serwer. Możemy to zrobić po prostu wyłączając Chatzillę, ale może to skutkować tym, że jeśli mieliśmy w tym momencie włączone panele z kanałami nasz nick pozostanie się przez jakiś czas na liście i staniemy się tzw. duchem. Bardziej elegancko jest przed wyłączeniem programu rozłączyć się z serwerem. Można to zrobić komendą:
- /quit Do widzenia
co spowoduje rozłączenie się z serwerem i wysłanie przez niego na wszystkie kanały, na których przebywaliśmy w momencie wykonywania tej komendy komunikatu:
* <poczatkujacy29> has left #polska (quit "Do widzenia")
Oczywiście, tak samo jak w przypadku komendy /part zamiast "Do widzenia" możemy napisać dowolny inny tekst.
Podsumowanie
Przekazane tu informacje, w zasadzie powinny wystarczyć do prowadzenia prostych rozmów za pomocą IRC. Zapoznaliśmy się tu z następującymi komendami:
- server
- połączenie się z określonym serwerem sieci IRC
- nick
- zmiana nicka
- join
- wejście na kanał
- part
- opuszczenie kanału
- query
- rozpoczęcie i zakończenie rozmowy prywatnej
- quit
- rozłączenie się z serwerem
IRC posiada jednak znacznie więcej możliwości, które są opisane w dalszych rozdziałach.
Najbardziej znane publiczne sieci IRC
Protokół i architekturę IRC wymyślił w 1988 roku Jarkko Oikarinen z Finlandii, w ramach swojej pracy doktorskiej o możliwości prowadzenia teledyskusji za pomocą Internetu. Oikarinen uważał to tylko za rodzaj niezbyt dopracowanego przykładu jednego z możliwych sposobów prowadzenia takiej dyskusji.
Zabawa spodobała się jednak studentom na Uniwersytecie Oulu, którzy uruchomili pierwszy serwer IRC (tolsun.oulu.fi, dziś już niestety nieczynny). Następnie rozesłali do zaprzyjaźnionych administratorów na całym świecie kod źródłowy serwera i klienta IRC.
Powstała w ten sposób pierwsza sieć IRC.
EFNet
Pierwsza sieć IRC pozwalała dołączać się dowolnym serwerom, co po pewnym czasie zaczęło sprawiać kłopoty. W 1990 roku większość administratorów zgodziła się na zmianę zasady otwartości. Pozostała garstka, której przewodził administrator serwera irc:eris.berkeley.edu, została odłączona, a reformatorzy nadali sobie nazwę EFNet (Eris Free Network). Odłączeni nazwali się ANet (Anarchy Net), jednak niedługo potem przestali istnieć. Sieć EFNet ma się dobrze do dziś i jest jedną z czterech największych sieci IRC na świecie. Pierwszy polski serwer IRC został przyłączony w 1993 właśnie do sieci EFNet. Obecnie w Polsce działa jeden serwer EFnetu: irc://irc.efnet.pl
Oficjalna strona sieci: http://www.efnet.org/
IRCnet
W 1996 roku operatorzy IRC nie mogli dojść do porozumienia w sprawie kierunku dalszego rozwoju sieci. Na to nałożyły się problemy z łączem Europa-Ameryka oraz prywatne animozje między administratorami. Skończyło się to tzw. "Wielkim Splitem" - większość serwerów europejskich i azjatyckich odłączyła się od EFNetu i argumentując, że kolebka IRC jest właśnie w Europie, przybrali nazwę "sieć IRC", czyli IRCnet. Z IRCnetu obecnie korzysta jednocześnie ok. 100 000 użytkowników - jest jedną z czterech największych sieci IRC na świecie, a także najpopularniejszą siecią IRC w Polsce. W Polsce włączone jest w nią 6 serwerów, z których 5: irc://warszawa.irc.pl , irc://krakow.irc.pl , irc://lublin.irc.pl , irc://poznan.irc.pl oraz irc://open.pl.ircnet.net służą bezpośrednio użytkownikom, zaś hub.irc.pl - łączy je wszystkie z resztą IRCnetu.
- Oficjalna strona IRCnetu: http://www.ircnet.com/
- Oficjalna, strona polskiej części IRCnetu: http://www.irc.pl/
Undernet
To historycznie druga z sieci ogólnoświatowych, powstała w 1993 roku, na początku jako sieć testowa dla programistów zajmujących się pisaniem oprogramowania dla serwerów IRC, potem szybko rozrosła się i jest teraz jedną z czterech największych. Sieć ta na początku była obsługiwana przez te same serwery IRC co serwery EFnetu, tylko na innych "niższych" portach z czego wywodzi się nazwa tej sieci. Później jednak potrzeba testowania pionierskich możliwości takich jak serwis "X" umożliwiający rejestrowanie kanałów wymusiły zmianę całego protokołu IRC i postawienie sieci własnych serwerów. Aktualnie w Polsce nie ma żadnego serwera przyłączonego do sieci Undernet, można jednak próbować łączyć się z dowolnym, losowo wybranym serwerem Undernetu.
Oficjalna strona Undernetu: http://www.undernet.org/
DALnet, USANet i inne
Na bazie pomysłu Undernetu zaczęły od 1995 roku powstawać kolejne nie połączone ze sobą sieci, z których największą jest chyba DALnet. Mają one zwykle możliwość rejestrowania pseudonimów i kanałów oraz są odporniejsze na splity i lagi, nie cieszą się jednak takim powodzeniem jak IRCnet czy Undernet. Wiele z nich, jak USANet, ma charakter czysto lokalny. W DALnecie w opracowano najbardziej popularny, mniej restrykcyjny od Undernetowego model dodatkowych serwisów, który później rozpowszechnił się w wielu innych sieciach IRC. W DALnecie też po raz pierwszy zastosowano system automatycznego przydzielania użytkowników do aktualnie najmniej obciążonego serwera. Jakkolwiek w DALnecie można się przyłączyć do dowolnego serwera, zalecane jest łączenie się przez główny adres sieci: irc://irc.dal.net, z którego jest się kierowanym do jednego z innych serwerów.
Oficjalna strona DALnetu: http://www.dal.net/
QuakeNet
QuakeNet to czwarta i najmłodsza z wielkich sieci IRC. Powstała w 1997 roku jako niewielka sieć dla graczy Quake i QuakeWorld. Charakterystyczne dla QuakeNetu są pseudoboty serwisowe "Q" i "L" oraz nastawienie na graczy online. Podobnie jak Undernet i Freenode ma możliwość rejestracji nicków, posiada też stałe kanały służące kojarzeniu graczy i meczy w grach sieciowych.
- Oficjalna strona QuakeNetu: http://www.quakenet.org/
- Lista serwerów: http://staff.quakenet.org/servers.phtml
FreeNode
Freenode powstała w 2002 r. na bazie serwera irc.openprojects.net, istniejącego od 1998 r. FreeNode jest siecią skupiającą użytkowników i programistów wolnego oprogramowania, oraz osób związanych z projektami tworzenia wolnej treści takimi jak Wikipedia. Freenode działa na protokole zbliżonym do DALnetu, dokładniej opisanego. Na FreeNode mieszczą się m.in. wszystkie kanały związane z polskimi projektami Fundacji Wikimedia: irc://irc.freenode.net/#wikipedia-pl, irc://irc.freenode.net/#wikinews-pl (goszczący polskie Wikibooks) itp. Podobnie jak z DALnetem z freenode należy się łączyć korzystając z jednego adresu: irc://irc.freenode.net , z którego jest się odsyłanym automatycznie do najmniej aktualnie obciążonego "faktycznego" serwera tej sieci.
Oficjalna strona freenode: http://freenode.net
Polskie sieci IRC
Pierwsze serwery IRC w Polsce połączone były do sieci EFnet. Po podziale sieci EFnet na EFnet i IRCnet polska część pozostała przy sieci IRCnet. Pierwszy serwer został założony przez Grzegorza Aksamita na Akademii Górniczo-Hutniczej w Krakowie w 1993 roku. Aktualnym koordynatorem polskiej części sieci IRCnet jest Piotr "Beeth" Kucharski.
Drugą pod względem średniej liczby użytkowników siecią IRC w Polsce jest EFnet, posiadający od grudnia 2000 roku uruchomiony przez ATM S.A. polski serwer. Wciąż trudno tam natrafić na kanały polskich społeczności, niemniej sieć ciągle się rozwija. EFnet jest szczególnie popularny w środowiskach uniwersyteckich oraz Polonii z USA i Australii, których serwery po "Wielkim Splicie" pozostały w sieci EFnet. Irc.efnet.pl jest obecnie największym serwerem w kraju pod względem liczby użytkowników. Koordynatorem sieci Efnet w Polsce jest Andrzej Karpiński, były operator sieci IRCnet.
Oprócz tego istnieją rdzennie polskie publiczne sieci IRC nie powiązane z sieciami międzynarodowymi. Zalicza się do nich m.in:
- PolNet - prawdopodobnie największa tego rodzaju sieć, do ok. 3000 użytkowników. Działa na protokole IRCd-hybrid, z serwisami Anope.
- Crashnet - zwana także IRC7.pl - ok. 350 użytkowników w szczycie. Prowadzona jest przez jednego z programistów zaangażowanych w projekt IRCd-hybrid. Oferuje serwisy i szereg dodatkowych usług dla użytkowników.
- NPIRCS - powstała w 2005 roku. Dysponuje 6 serwerami, w różnych miastach Polski, średnio 100 użytkowników, w szczycie 700 i ciągle rośnie. Sieć korzysta z serwisów Anope. Serwery działają na oprogramowaniu UnrealIRCd.
- IRCX.net.pl - (dawniej pod nazwą i domeną ircx.eu.org) sieć założona na początku 2000 roku, średnio 60 użytkowników, w szczycie 120 - działa na protokole IRCX - 3 serwery. Główny kanał: #Polska
- IFNet - sieć założona w 2002 roku przez grupę administratorów i programistów - entuzjastów IRCd - nieznana liczba użytkowników - działa na irc2.11.x - 4 serwery - 1 w Niemczech i 3 w Polsce, flagowy kanał to #Polska. Nie posiada serwisów, zamiast nich jest tzw. indeks kanałów umożliwiający zarejestrowanie kanału.
Ponadto w wielu lokalnych sieciach, działających w krajach, gdzie żyją polskie społeczności, istnieją często polskie kanały, np.: #polska w Undernecie, #polonia w DALnecie i USAnecie.
Oficjalne strony WWW sieci "czysto-polskich"
- PolNet: http://www.ircnet.pl
- Strona IFNet: http://www.ifnet.de
- IRCX: http://www.ircx.net.pl
- NPIRCS: http://www.npircs.pl
Klienty
Klient to program pośredniczący między użytkownikiem i serwerem sieci IRC, który musi być zainstalowany na komputerze osobistym użytkownika, lub na komputerze na którym ma on swoje konto. Sam klient nie jest programem realizującym usługę IRC - jego działanie bez dostępu do serwera nie ma żadnego sensu.
Klient pełni następujące podstawowe funkcje:
- łączy się z serwerem i dostarcza mu danych o użytkowniku, których serwer wymaga przy połączeniu
- przesyła do serwera komendy i komunikaty użytkownika
- porządkuje dane dochodzące z serwera umieszczając je w odpowiednich oknach lub panelach.
Oprócz tego wiele klientów zapewnia:
- ochronę użytkownika przed atakami innych użytkowników
- szyfrowanie danych poufnych
- automatyczną stabilizację połączenia z serwerem
- logowanie rozmów
- gromadzenie danych na temat użytkowników z którym się zetknęliśmy.
Aktualnie na rynku istnieje wiele klientów IRC na w zasadzie wszystkie systemy operacyjne. Część z tych programów jest bezpłatna i oparta na wolnych licencjach, za część (niestety często najlepszych) trzeba zapłacić.
Generalnie klienty IRC można podzielić na:
- działające w trybie tekstowym - w których jest jedno okno komunikatów, które ew. może być dzielone na panele i jedno okno wprowadzania komunikatów i komend - tego typu programy mają jednak często bardzo dużo możliwości, z których korzystają zaawansowani użytkownicy - typowe przykłady to ircII, BitchX, czy irsii
- działające w środowisku graficznym - w którym nadchodzące z serwera dane są automatycznie porządkowane w oknach i w których część najbardziej popularnych komend można wydawać z użyciem myszki i rozwijalnych menu - są to zazwyczaj programy dla początkujących oraz tych, którzy cenią sobie wygodę i nie odczuwają potrzeby zagłębiania się w techniczne szczegóły - typowe przykłady to mIRC, Visual IRC czy pIRCH.
- programy "elementarne" - które koncentrują się na ułatwianiu rozmów czy ogólnie pracy "zwykłych" użytkowników, którzy nie mają ambicji administrowania kanałów czy toczenia "wojen" z innymi użytkownikami - typowy przykład to Chatzilla, Bersirc i Opera-Chat.
- programy "rozbudowane" - posiadające wiele dodatkowych modułów administracyjnych, umożliwiające automatyzowanie wielu czynności oraz modyfikowanie swojego działania poprzez dołączanie do nich skryptów - wiele z tego rodzaju programów ma już pewne cechy botów - typowe przykłady to BitchX, mIRC, czy EPIC.
Omówienie najbardziej popularnych klientów
ircII
ircII to bezpośredni potomek programu "irc" napisanego jeszcze przez Jarko Oikarinena. Program jest przeznaczony do pracy na terminalu tekstowym bezpośrednio spod tzw. "shella" systemów typu "UNIX". Zachowuje on wygląd i funkcjonalność programu-klienta Oikarinena, ale dołączono do niego sporo dodatkowych funkcji oraz rozbudowany język do pisania skryptów, który stał się szybko standardem, dzięki czemu istnieją do niego setki skryptów rozszerzających jego możliwości, łącznie z możliwością przekształcenia go w rodzaj prymitywnego bota.
Jakkolwiek ircII jest wyjątkowo mało przyjazny dla użytkownika istnieją wciąż liczni jego zwolennicy, którzy nie "uznają nowych wynalazków". ircII jest dostępny na licencji BSD (Berkeley Software Distribution). ircII jest też bardzo często "standardowym" klientem IRC w środowisku Linuksa, dołączanym do większości jego dystrybucji. Na kodzie tego programu są oparte prawie wszystkie pozostałe programy-klienty IRC. Bezpośrednimi jego "mutacjami" są BitchX i EPIC, które posiadają bardziej od niego rozbudowane możliwości skryptowe i inne dodatkowe funkcje.
Oficjalna strona: http://www.eterna.com.au/ircii/
BitchX
BitchX był początkowo jednym z najlepszych skryptów "dla profesjonalistów" napisanym do EPICa, mutacji ircII. Ograniczenia funkcjonalności języka skryptowego ircII spowodowały jednak, że zdecydowano się napisać nowego klienta, w którym wszystkie funkcje dawnego skryptu zostały wbudowane integralnie w program, zaś pierwotny język skryptowy ircII został znacznie poszerzony i rozbudowany. BitchX jest dość trudnym w obsłudze programem, w którym nacisk położono nie tyle na funkcjonalność w czasie prowadzenia rozmów ile na zapewnianiu jego użytkownikowi bezpieczeństwa i ułatwianiu kontrolowania kanałów. Stosunkowo prosto daje się go rozbudować do dość zaawansowanego "quasi-bota" pilnującego kanału. Jest popularny wśród zaawansowanych użytkowników pracujących w środowisku Linux.
W rękach "amatora" jest często niebezpieczny, gdyż standardowo jest skonfigurowany do prowadzenia "wojny". Np: przy pomocy prostego skrótu klawiaturowego można go przypadkowo przełączyć w tryb "revenge", w którym wykopuje on i banuje z każdego kanału na który się nim wejdzie każdego użytkownika znajdującego się na "czarnej liście".
Oficjalna strona: http://www.bitchx.org/
Irssi
Irssi to konkurencyjny wobec ircII i jego pochodnych program przeznaczony do tekstowego środowiska systemów operacyjnych podobnych do Linuksa. Jest jednak dostępny też do MS Windows i MacOs. Posiada on dość wygodny, jak na programy pracujące w środowisku tekstowym, interfejs i jest standardowo skonfigurowany w nie-agresywny sposób, co powoduje, że w niektórych dystrybucjach Linuksa używany jest zamiast ircII jako "standardowy" klient IRC. Dla jednych jego zaletą, a dla innych wadą, jest to, że korzysta z języka "perl" jako swojego języka skryptowego. Umożliwia to z jednej strony adaptowanie skryptów pisanych z myślą o innych zastosowaniach niż IRC i tworzenie na tej podstawie usługowych "quasi-botów" a z drugiej strony zestaw skryptów przeznaczonych specjalnie dla tego programu jest znacznie skromniejszy od tych dostępnych dla ircII i jego pochodnych.
Na Wikibooks dostępny jest podręcznik dla Irssi.
Oficjalna strona: http://www.irssi.org/
mIRC
mIRC jest prawdopodobnie najbardziej popularnym klientem IRC napisanym specjalnie dla systemu MS Windows i prawdopodobnie najbardziej popularnym tego rodzaju programem w ogóle. W pewnym sensie jest takim samym standardem wśród klientów graficznych dla Windows jak ircII dla klientów tekstowych dla Linuksa. Stanowi on dość rozsądny kompromis między funkcjonalnością dla początkujących i średnio zaawansowanych. Rozpoczęcie z nim pracy jest bardzo proste, a mimo to posiada on wiele rozbudowanych możliwości, które można stopniowo poznawać w trakcie nabierania wprawy. Biblioteka skryptów do niego jest niemal tak samo obszerna jak do ircII i jego pochodnych. Jego język skryptowy i dodatkowe opcje są nastawione głównie na średnio zaawansowanych użytkowników, którzy nad bezpieczeństwo przedkładają użyteczność i elementy zapewniające "dobrą zabawę". Typowym przykładem "co może" mIRC jest skrypt przekształcający ten program w odtwarzacz mp3, z możliwością wspólnego, jednoczesnego słuchania utworu przez użytkowników jednego kanału.
Bardziej zaawansowani użytkownicy krytykują go za "dziwny i nie przemyślany do końca" język skryptowy, który utrudnia pisanie do niego skryptów skutecznie nadzorujących kanały. Słabo chroni on także użytkownika przed atakami w czasie "wojen". W starciu z BitchXem praktycznie nie ma żadnych szans.
Jest programem płatnym, typu shareware. Spory odsetek ludzi używa jego wersje "spiratowane". Program jest krytykowany za umożliwienie zaśmiecania kanałów kolorowanymi tekstami. Umożliwia on bowiem łatwe wysyłanie komunikatów z kodami formatującymi, które są poprawnie interpretowane tylko przez ten program. Wiele skryptów do mIRCa wykorzystuje tę możliwość do tworzenia bibliotek kolorowych "floodów" (tekstów wysyłanych linijka po linijce i tworzących jakiś wzór lub rysunek), które potem można wysyłać na kanał jedną komendą.
Oficjalna strona: http://www.mirc.com/
Dwa inne, popularne klienty IRC o zbliżonym do mIRCa typie interfejsu, choć o mniejszej funkcjonalności, ale za to bezpłatne i oparte na wolnych licencjach, to pIRCh i Visual IRC.
X-Chat
X-Chat powstał pierwotnie jako klient tekstowy do systemów typu Linux o zbliżonej funkcjonalności do irssi, ale posiadający możliwość dołączania skryptów w potencjalnie każdym języku programowania, dzięki stosowaniu mechanizmu wtyczek. W praktyce, w połowie 2006 r. istniały do niego wtyczki obsługujące, języki perl, python, tcl i ruby. Mimo tego faktyczna liczba skryptów dostępnych do tego programu jest znacznie mniejsza niż do ircII i pochodnych, a nawet do mIRCa. Na bazie pierwotnego X-Chata, w ramach projektu "X-Chat-Aqua" rozwijane są też jego wersje do kilku środowisk graficznych.
X-Chat jako klient tekstowy nigdy nie osiągnął zbyt dużej popularności przegrywając z irssi wśród średnio zaawansowanych użytkowników i BitchXem wśród zaawansowanych. Jego wersje graficzne cieszą się dużą popularnością wśród średniozaawansowanych użytkowników, gdzie skutecznie konkuruje on z mIRCem i innymi mniej popularnymi klientami tego typu dzięki temu, że oferuje zbliżoną funkcjonalność i jednocześnie jest stale rozwijany i bezpłatny. Problemem jest fakt, że wydanie dla Windows jest shareware, choć dostępne są nieoficjalne (jednocześnie legalne), w pełni darmowe wersje.
Oficjalna strona: http://www.xchat.org/
Chatzilla
Chatzilla jest przykładem prostego, podstawowego klienta dla początkujących, pracującego w środowisku graficznym. Swoją popularność zawdzięcza temu, że jest bezpłatnie dostępny dla niemal wszystkich systemów operacyjnych oraz temu, że jest dołączany do pakietu przeglądarki Mozilla, a użytkownicy Firefoxa mogą go sobie bardzo łatwo zainstalować w formie rozszerzenia do tego programu.
Chatzilla posiada dość prosty, niezbyt elegancki, choć dość funkcjonalny interfejs. Teoretycznie można do Chatzilli dodawać skrypty, jednak mogą one być pisane wyłącznie w języku JavaScript, który nie nadaje się zbytnio do tego celu. Biblioteki skryptów do Chatzilli są więcej niż skromne.
Oficjalna strona: http://www.mozilla.org/projects/rt-messaging/chatzilla/
Podobnym produktem do Chatzilli jest IRC-klient integralnie wbudowany do pakietu przeglądarki "Opera".
Lista popularnych klientów
Kliknięcie na nazwę klienta, kieruje do jego oficjalnej strony, z której zazwyczaj można go ściągnąć.
| Data pierwszej edycji | Ostatnia stabilna wersja | Cena (w USD) | Licencja | |
|---|---|---|---|---|
| BitchX | 1996 | 1.1 | bezpłatne | BSD |
| Bersirc | 1999 | 2.2.14 | bezpłatne | LGPL |
| ChatZilla | 2001 | 0.9.73 | bezpłatne | MPL/GPL/LGPL |
| EPIC | 1994 | epic4-2.4 | bezpłatne | BSD |
| HydraIRC | 2002 | 0.3.151 | bezpłatne | własnościowe |
| IceChat | 2002 | 5.50 | bezpłatne | własnościowe |
| ircII | 1990 | 20040820 | bezpłatne | BSD |
| Ircle | ? | 3.1.2 | Shareware, 23 USD | własnościowe |
| Irssi | 1999 | 0.8.10 | bezpłatne | GPL |
| Konversation | 2002 | 0.19 | bezpłatne | GPL |
| Kopete | 2002 | 0.12.1 | bezpłatne | GPL |
| KVIrc | 1999 | 3.2.0 | bezpłatne | GPL |
| mIRC | 1995 | 6.17 | Shareware, 20 USD | własnościowe |
| Opera | ? | 9.21 | bezpłatne | własnościowe |
| savIRC | 2001 | 2.0 | bezpłatne | GPL |
| Visual IRC | 1995 | 2.0 | bezpłatne | GPL |
| wmii | 2006 | 1-rc2 | bezpłatne | MIT/X Consortium License |
| WeeChat | 2003 | 0.1.9 | bezpłatne | GPL |
| X-Chat | 2000 | 2.6.2 | Shareware, 20 USD dla MS Windows; bezpłatnie dla innych systemów operacyjnych | własnościowe dla MS Windows; GPL dla innych systemów operacyjnych |
| Data pierwszej edycji | Ostatnia stabilna wersja | Cena w USD | licencja |
Wsparcie systemów operacyjnych
Systemy operacyjne, w jakich może działać dany klient
| Windows | Mac OS X | Linux | BSD | Unix | |
|---|---|---|---|---|---|
| BitchX | Częściowo | Tak | Tak | Tak | Tak |
| Bersirc | Tak | Tak | Nie | Tak | Tak |
| ChatZilla | Tak | Tak | Tak | Tak | Tak |
| HydraIRC | Tak | Nie | Nie | Nie | Nie |
| IceChat | Tak | Nie | Nie | Nie | Nie |
| ircII | Tak | Tak | Tak | Tak | Tak |
| Ircle | Nie | Tak | Nie | Nie | Nie |
| Irssi | Częściowo | Tak | Tak | Tak | Tak |
| Konversation | Nie | Tak | Tak | Tak | Tak |
| Kopete | Nie | Tak | Tak | Tak | Tak |
| KVIrc | Tak | Tak | Tak | Tak | Tak |
| mIRC | Tak | Nie | Nie | Nie | Nie |
| Opera | Tak | Tak | Tak | Tak | Tak |
| savIRC | Tak | ? | Tak | Tak | Tak |
| ScrollZ | Częściowo | Tak | Tak | Tak | Tak |
| Visual IRC | Tak | Nie | Nie | Nie | Nie |
| wwii | Nie | Tak | Tak | Tak | Tak |
| WeeChat | Nie | Tak | Tak | Tak | Tak |
| X-Chat | Tak | Tak | Tak | Tak | Tak |
| Windows | Mac OS X | Linux | BSD | Unix |
Możliwości
Obsługa dodatkowych protokołów, komend, obsługa połączeń z więcej niż jednym serwerem, obsługa połączeń szyfrowanych (SSL i IPv6), obsługa kodowania polskich znaków (ISO-8859-2 i UTF-8), graficzny (GUI) lub tekstowy (UI) interfejs, możliwość dodawania skryptów.
| Obsługa wielu serwerów | DCC | Pasywne DCC / DCC serwer | SSL | IPv6 | ISO-8859-2 | UTF-8 | UI | GUI | skrypty | |
|---|---|---|---|---|---|---|---|---|---|---|
| BitchX | Tak | Tak | Nie | Tak | Tak | ? | Nie | Tak | Tak | poszerzona składnia skryptów IrcII |
| Bersirc | Tak | Częściowo | Nie | Nie | Nie | ? | Nie | Nie | Tak | Nie |
| ChatZilla | Tak | Tak | Nie | Tak | Tak | Tak | Tak | Nie | Tak | JavaScript |
| HydraIRC | Tak | Tak | ? | Nie | Nie | ? | Nie | Nie | Tak | nie, ale można dodawać pluginy |
| ircII | Tak | Tak | Nie | Nie | Tak | ? | Tak | Tak | Nie | własny język skryptowy, który stał się standardem |
| Irssi | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Nie | skrypty w jęz. Perl |
| Konversation | Tak | Tak | Nie | Tak | Tak | ? | Tak | Nie | Tak | Shell script |
| Kopete | Tak | Tak | ? | Tak | Tak | ? | Tak | Nie | Tak | Nie |
| KVIrc | Tak | Tak | Częściowo | Tak | Tak | ? | Tak | Nie | Tak | KVIrc script, Perl |
| Miranda z wtyczką IRC | Tak | Tak | Tak | Tak | ? | Nie | Tak | Nie | Tak | PHP (wymagany Miranda Scripting Plugin) |
| mIRC | Tak | Tak | Tak | Tak | Częściowo | Nie *) | Tak | Nie | Tak | mIRC script (podobny do IRCII) *) istnieje skrypt przekodowujący |
| Opera | Tak | Tak | ? | ? | ? | Tak | Tak | Nie | Tak | Nie |
| savIRC | Tak | Tak | Tak | Tak | Tak | ? | Tak | Nie | Tak | Tcl/Tk |
| ScrollZ | Tak | Tak | Nie | Tak | Tak | ? | Tak | Tak | Nie | Poszerzony IrcII |
| Visual IRC | Tak | Tak | Częściowo | Nie | Nie | ? | Nie | Nie | Tak | Versus |
| wwii | Tak | Nie | Nie | Nie | Nie | ? | Tak | Nie | Nie | Nie |
| WeeChat | Tak | Tak | Częściowo | Tak | Tak | ? | Tak | Tak | Nie | Perl, Python, Ruby, Lua |
| X-Chat | Tak | Tak | Częściowo | Tak | Tak | Tak | Tak | Tak | Tak | Perl,Python, Tcl, Ruby |
| Obsługa wielu serwerów | DCC | Pasywne DCC/ Serwer DCC | SSL | IPv6 | ISO-8859-2 | UTF-8 | UI | GUI | Skrypty |
UWAGA: Konverter iconvircproxy może być użyty do konwersji między UTF-8 a kodowaniem lokalnym, dodając w ten sposób obsługę UTF-8 do dowolnego klienta IRC.
Serwery
Serwer IRC to rodzaj programu realizującego na zdalnym komputerze usługę IRC. Serwer generalnie realizuje kilka podstawowych funkcji:
- przyjmuje i odbiera strumień informacji od wszystkich przyłączonych do niego aktualnie klientów
- jeśli pracuje w sieci wieloserwerowej, realizuje przekazywanie i przyjmowanie strumienia informacji z i do innych serwerów
- przechowuje i na bieżąco uaktualnia listę użytkowników i kanałów.
Oprogramowanie serwera IRC jest publicznie dostępne, teoretycznie każdy więc może postawić serwer i następnie, łącząc się z innymi serwerami, budować własną sieć IRC. Serwerami zarządzają tzw. ircopi, którzy z tego tytułu mają szczególne przywileje wewnątrz samej sieci. Jakkolwiek dostępne są wersje oprogramowania serwerów na wiele systemów operacyjnych, olbrzymia większość z nich działa pod systemami typu Unix (Linux, Irix itp). Aby działanie serwera miało sens musi on funkcjonować na odpowiednio szybkim komputerze ze stabilnym systemem operacyjnymi i być utrzymywany przez 24 godziny na dobę, 7 dni w tygodniu. Oprócz tego poprawne zainstalowanie, skonfigurowanie i utrzymanie serwera wymaga dużej wiedzy i dysponowania wolnym czasem.
W dużych sieciach IRC istnieją trzy rodzaje struktury połączeń serwerów:
- każdy serwer jest połączony z każdym innym - tworzą więc one gęstą sieć połączeń
- w sieci istnieje serwer "matka" zwany "hubem" - wszystkie inne serwery łączą się za pośrednictwem huba i nie kontaktują się bezpośrednio z sobą; użytkownicy nigdy nie łączą się bezpośrednio z hubem
- układ mieszany - sieć jest podzielona na podsieci; każda z podsieci posiada swojego huba, huby łączą się jednak na zasadzie każdy z każdym tworząc podstawowy szkielet systemu; niektóre huby funkcjonują też jako serwery dostępne bezpośrednio dla użytkowników.
Łączenie się z serwerem
Łączenie z serwerem realizuje się za pomocą komendy:
- /server adres_serwera numer_portu
Adres_serwera jest typowym adresem domeny internetowej np: irc.freenode.org albo konkretnym numerem IP (np: 83.212.34.78). Numer_portu - określa port na którym serwer oczekuje na nadchodzące połączenia klientów. Standardowo jest to 6666 lub 6667, niektóre serwery sieci "dla wtajemniczonych" używają jednak nietypowych numerów portów, aby w ten prosty sposób wyeliminować większość niepożądanych gości.
Większość klientów IRC posiada w miarę aktualny spis serwerów większości najbardziej popularnych sieci, dzięki czemu nie trzeba ich szukać w internecie. Większość klientów IRC wykonuje automatycznie komendę /server do naszego ulubionego serwera. Wiele programów do IRC umożliwia też utworzenie listy serwerów naszej ulubionej sieci IRC i automatycznie próbuje się łączyć z kolejnymi, gdy z jakichś powodów nasz ulubiony serwer nie chce zaakceptować połączenia.
Zasady akceptacji połączenia są różne w różnych sieciach i na różnych serwerach. Zasady te ustalają operatorzy serwerów. Istnieją sieci dopuszczające tylko osoby łączące się z określonej puli adresów internetowych, sieci sprawdzające jakim klientem próbujemy się łączyć i odrzucające klienty uznane za niedobre czy wreszcie sieci nie pozwalające łączyć się z dynamicznych adresów IP.
Uzyskiwanie połączenia z serwerem trwa zwykle jakiś czas, niekiedy może to być nawet kilka minut. Po uzyskaniu połączenia wyświetla się zwykle komunikat główny serwera {tzw. motd message of the day), w którym znajdują się podstawowe informacje o nim, o liczbie istniejących aktualnie kanałów i użytkowników, o tym kto jest jego operatorem oraz często o podstawowych zasadach panujących na nim. Motd można w każdej chwili wyświetlić komendą:
- /motd
Po uzyskaniu połączenia możemy wydawać dalsze komendy - takie jak wejście na kanał, wyświetlenie listy kanałów itp.
Rozłączenie się danym serwerem bez wyłączania naszego klienta można uzyskać wykonując komendę:
- /server
bez żadnych parametrów. Rozłączenie następuje też automatycznie przy próbie połączenia się z innym serwerem, choć niektóre klienty IRC posiadają możliwość jednoczesnego łączenia z kilkoma serwerami. Wymaga to jednak zwykle wcześniejszego uruchomienia dodatkowego okna "serwerowego".
Lagi
Lag to zjawisko spowolnienia pracy serwera na skutek jego przeciążenia nadmierną liczbą użytkowników, lub problemów z łączami. Lag powoduje, że serwer przekazuje komunikaty użytkowników z dużym opóźnieniem. W dużych, wieloserwerowych sieciach lag jest często różny, dla różnych par użytkowników zależnie od tego do których serwerów są oni przyłączeni. Lagi powodują, że komunikaty pojawiające się kolejno na kanale mogły być wysyłane w innej kolejności niż je widzimy, co często prowadzi do mniej czy bardziej zabawnych nieporozumień. Co więcej - kolejność komunikatów jest w tej sytuacji różna na różnych serwerach, stąd obraz kanału użytkowników połączonych do różnych serwerów może być inny.
Lagi mogą być czasami zaskakująco duże. Znane są przypadki z największych światowych sieci takich jak IRCnet, że dochodzą one nawet do 30-40 minut. Lag rzędu kilku sekund jest w zasadzie nieodczuwalny, jednak lag rzędu 1 minuty daje się już mocno we znaki i powoduje wrażenie jakby się rozmawiało z kimś przebywającym na innej planecie. Długie lagi, rzędu kilkunastu minut praktycznie uniemożliwiają już sensowną komunikację.
Aby sprawdzić jak się ma lag do określonego użytkownika można wydać komendę:
- /ctcp ping nick
w wyniku czego otrzymuje się odpowiedź:
- [nick PING reply]: x sec
W wielu klientach IRC komenda ta jest uproszczona (za pomocą aliasu) do:
- /ping nick
Oprócz serwera, częściowo odpowiedzialne za lag może być też nasze własne łącze. Aby się przekonać, jaka część lagu wynika bezpośrednio z naszego łącza z serwerem, możemy wysłać "pinga" do siebie samego.
- Jak radzić sobie z lagiem
- Najpierw warto zawsze sprawdzić lag do samego siebie - jeśli jest duży warto poszukać innego serwera lub połączyć się ponownie z tym samym. Jeśli nasz własny lag jest mały, ale na kanale, na którym chcemy rozmawiać mamy duży lag do większości użytkowników możemy sprawdzić z jakich serwerów oni korzystają przy pomocy komendy /whois (opisanej w rozdziale użytkownicy) i o ile to możliwe przenieść się na serwer, z którego korzysta większość użytkowników danego kanału.
Splity
Split to sytuacja, w której dochodzi do rozłączenia się serwerów, najczęściej na skutek przepełnienia łącz między nimi lub uszkodzenia jednego z hubów. Split może dotyczyć jednego serwera, który samodzielnie odłącza od reszty sieci lub może powodować czasowe podzielenie się sieci na dwa lub więcej mniejszych fragmentów.
Split powoduje, że z kanału "znika" nagle duża grupa użytkowników, co jest szerzej opisane w następnym rozdziale. Split jest najczęściej poprzedzony okresem narastającego laga, stąd można powiedzieć, że lagi są często zwiastunami splitu. W trakcie splitu oprogramowanie serwerów stara się ponownie odzyskać łączność. Różne wersje serwerów mają różne procedury radzenia sobie ze splitami. Splity mogą trwać od kilku sekund do nawet wielu godzin i dni. Szczególnie uciążliwe są częste splity krótkotrwałe, gdyż powodują ciągłe rwanie się dyskusji i zaśmiecanie kanałów licznymi komunikatami o wejściach i wyjściach grup użytkowników z różnych "odsplitowanych" serwerów.
- Radzenie sobie ze splitami
- Krótkotrwałe, pojedyncze splity najrozsądniej jest po prostu przeczekać. Gdy split trwa dłużej i tak się składa, że większość użytkowników kanału z którymi chcemy porozmawiać znalazła się "po drugiej stronie" warto rozważyć przeniesienie się na inny serwer. Paniczne zmiany serwerów spowodowane krótkotrwałymi splitami pogłębiają tylko chaos. Ludzie przenoszą się z jednego serwera na drugi co dodatkowo je przeciąża i utrudnia im wyjście ze splitu. Na samym kanale, oprócz wyjść i wejść spowodowanych splitem pojawiają się wejścia i wyjścia spowodowane wędrówkami użytkowników po serwerach.
Odmiany serwerów z punktu widzenia użytkownika
Istnieje kilkanaście odmian oprogramowania serwerów, które różnią się rozmaitymi szczegółami a także rodzajem obsługiwanego protokołu. Odmiany te są pochodnymi czterech podstawowych wersji serwerów wywodzących się z oprogramowania EFnetu, IRCnetu, DALnetu i Undernetu (patrz rozdział o sieciach IRC). Z punktu widzenia zwykłego użytkownika różnice między serwerami EFnetu i IRCnetu są prawie niezauważalne, jednak serwery oparte na oprogramowaniu Undernetu i zwłaszcza DALnetu funkcjonują wyraźnie inaczej.
Najłatwiej jest te różnice dostrzec przez porównanie serwerów DALnetu i IRCnetu:
- Z DALnetem łączymy się zawsze stosując adres irc.dalnet.net - serwer "matka" automatycznie przydzieli nas do odpowiedniego geograficznie lub aktualnie najmniej obciążonego serwera
- Z IRCnetem łączymy się bezpośrednio z wybranym samodzielnie z listy serwerem
- W DALnecie istnieją dodatkowe usługi wbudowane w serwer umożliwiające rejestrację nicka i kanału
- W IRCnecie musimy sobie radzić z pilnowaniem kanału i nicka sami
- DALnet inaczej obsługuje splity - w zarejestrowanych kanałach "porządek" po splicie jest dokonywany automatycznie przez specjalną usługę - w niezarejestrowanych po splicie wszyscy tracą status operatora
Ogólnie można powiedzieć, że serwery sieci podobnych do DALnetu są nastawione na utrzymywanie daleko idącego porządku po to, aby zapobiec "wojnom na kanale" i kłótniom użytkowników o ich nicki, natomiast serwery sieci podobnych do IRCnetu pozostawiają większą swobodę użytkownikom, co tworzy na nich rodzaj ircowego folkloru, który szerzej opisany jest w osobnym rozdziale.
Techniczne szczegóły działania oprogramowania serwerów i opis ich rozwoju oraz odmian znajduje się w rozdziale "Protokół i jego odmiany". Jest tam również mowa o zdarzających się czasem problemach z połączeniem się sieciami z powodu niezgodności klienta i serwera.
Szanuj swojego IRCopa
IRCop - czyli zwykle administrator serwera jest w sieci IRC rodzajem "boga". Toczenie z nim sporu na ogół mija się z celem, gdyż ma on zawsze narzędzia umożliwiające pozbycie się uciążliwego użytkownika. IRCopowie ustalają też ogólne zasady i politykę na serwerze, które nie podlegają zwykle żadnej dyskusji. IRCopowie wykonują ciężką, społeczną pracę, za którą zwykle nikt im nie płaci. Zgłaszanie próśb o pomoc do IRCopa należy zatem zawsze wcześniej dobrze przemyśleć.
Do IRCopa można się zwrócić o pomoc w sytuacji gdy:
- kanał uległ trwałemu, wrogiemu przejęciu i nie ma wątpliwości do kogo on pierwotnie należał i co na nim powinno się dziać
- nastąpiła trwała desynchronizacja kanału na skutek splitu lub lagu
- IRCop założył k-linię, która objęła nas mimo, że nie powinna.
Do IRCopa nie należy zwracać się o:
- pomoc w rozstrzygnięciu sporu między dwiema skłóconymi grupami operatorów kanału - IRCopowie z zasady nie mieszają się do "polityki kanałowej"
- pomoc w odzyskaniu utraconego nicka
- skargami na innych użytkowników
O tym jak znaleźć IRCopa można przeczytać w rozdziale "Użytkownicy"
Kanały
Kanały to podstawowa cecha IRC-a, która odróżnia go od innych usług umożliwiających chat w internecie. Olbrzymia większość rozmów w IRC odbywa się właśnie na kanałach.
Kanał w pewnym sensie przypomina salę obrad. Wchodząc do niego spotykamy pewną grupę osób, która już w nim jest i prowadzi jakąś rozmowę lub milczy. W odróżnieniu jednak od prawdziwych sal obrad, IRC pozwala na ich tworzenie w każdej chwili, bez ograniczeń co do ich liczby. Podobnie jak z obradami na żywo, istnieją kanały publiczne, na które może każdy wejść jak i "prywatne pokoje", do których dostęp jest ograniczony lub całkowicie zamknięty przed niepowołanymi.
Nazewnictwo kanału
Nazwy większości kanałów rozpoczynają się od znaku specjalnego "#". Niektóre protokoły IRC dopuszczają też "+", "&", "!" i "%". Kanały zaczynające się na "!", "&" mają zwykle szczególne znaczenie (np: są to kanały techniczne, szczególnie chronione, albo kanały pomocowe lub lokalne). Kanały specjalne standardowo nie pokazują się na zwykłej liście kanałów. Za znakiem specjalnym kanału znajduje się jego nazwa.
Większość protokołów IRC ogranicza długość nazwy kanału do 16 lub 32 znaków. W samej nazwie zakazane jest stosowanie znaków specjalnych: "?", "!", "*", "@", "|", "&", "~", "#" """ (cudzysłów) - które są używane jako metaznaki w składni kluczy wyszukiwawczych, lub mają jakieś inne, szczególne zastosowania
Przykłady nazw:
- #wikipedia
- #wikipedia-pl
- @ircops
- ?help
#wi@ki!pe"d"i&#- przykładowa nazwa nieprawidłowa
Wyszukiwanie kanałów
Listę istniejących kanałów na danym serwerze można uzyskać przy pomocy komendy:
- /list klucz wyszukiwania
Gdy użyjemy komendy:
- /list
bez klucza wyszukiwania otrzymamy pełną listę wszystkich kanałów, oprócz kanałów z trybem "+s" (sekretnych). Generowanie takiej pełnej listy kończy się jednak zazwyczaj fatalnie - w dużych sieciach lista ta może liczyć kilkadziesiąt tysięcy pozycji i zanim ją całą otrzymamy serwer zerwie z nami połączenie na skutek przekroczenia dozwolonego limitu danych w jednostce czasu. Z tego względu lepiej jest użyć dobrze przemyślanego klucza wyszukiwania. Klucz ten może się składać z poszukiwanych fragmentów nazw kanału oraz znaków specjalnych takich jak "*", "!" i "?" zwanych metaznakami.
- /list #wiki*
wyświetli listę wszystkich kanałów, których nazwa zaczyna się od "#wiki" - a zatem "#wikipedia", "#wikinews", "#wikimedia-pl itd.
- /list #wiki*pl
wyświetli listę wszystkich kanałów, których nazwa zaczyna się od "#wiki" i kończy na "pl" a zatem "#wikipedia-pl", "#wikinews-pl", itd.
Lista kanałów zawiera zwykle jego nazwę, liczbę użytkowników, tryb i topic:
Przykład działania komendy /list
/list wiki* warszawa.irc.pl Tue Jun 13 21:52:40 2006 #PartioWiki 18 public #wikipedia 15 +int blowfish: de goeiste #tuxboxwiki 10 public http://wiki.tuxbox.org - Das TuxBox Wiki-Projekt #pukiwiki 7 +nt #autowiki 5 public #murowiki 5 +t Älkää peljästykö, Wikiä siirretään tuotantopalvelimelle #wikilinux 4 +itn /END of list
Tworzenie kanału i wchodzenie na już istniejący
Tworzenie kanału jest banalnie proste - o ile dany kanał jeszcze nie istnieje piszemy komendę:
- /join #nazwa_kanału
co powoduje jednocześnie jego utworzenie na serwerze i od razu nasze wejście na ten kanał. Oczywiście jeśli kanał już istnieje komenda /join powoduje po prostu wejście na dany kanał, o ile jest on dla nas dostępny, lub uzyskanie informacji o odmowie wpuszczenia.
Zwykle tworzenie nowego kanału ma jakiś powód. Np: mamy grupę osób, którą informujemy w jakiś sposób, że tworzymy kanał na jakiś temat i czekamy aż przyjdą. Tworzenie kanału dla samego jego tworzenia jest zajęciem na ogół pozbawionym sensu. Gdy chcemy spotkać określoną grupę ludzi lub porozmawiać na jakiś określony temat lepiej jest poszukać już istniejącego kanału niż tworzyć nowy i czekać aż ktoś się pojawi.
Po wejściu na kanał, który wcześniej nie istniał jesteśmy, przynajmniej początkowo, na nim całkowicie sami. Wchodząc na nieistniejący kanał serwer daje nam na nim automatycznie przywileje operatora, którymi później możemy (lub nie) dzielić się z innymi wg naszego uznania.
- Netykieta wchodzenia na kanał
- Przy wchodzeniu na już istniejący kanał wypada powiedzieć "cześć". Zwykle dłuższe powitanie, czy przesadnie długie przedstawianie swojej osoby jest odbierane przez uczestników kanału jako dowód na tzw. lamerstwo. Na kanałach gdzie jest wielu użytkowników, ciągłe przedstawianie się nowo-wchodzących jest zbyt uciążliwe. Po wejściu na kanał warto też po powiedzeniu "cześć" pomilczeć chwilę, aby zorientować się o czym aktualnie jest mowa. Przerywanie rozmów innych lub wyskakiwanie "jak Filip z Konopi" jest zwykle negatywnie odbierane przez innych użytkowników.
Temat
Temat (ang. topic) to tekst przypisywany do kanału, który pojawia się po wejściu na niego, a w wielu klientach IRC jest on też automatycznie wstawiany do belki tytułowej okna, w którym jest wyświetlany dany kanał. Oprogramowanie serwerów IRC ogranicza zwykle długość tekstu tematu do 128 lub 256 znaków. Mogą to być zupełnie dowolne znaki.
W zależności od trybu działania kanału temat może zmieniać każdy użytkownik lub tylko użytkownicy ze statusem operatora kanału. Robi się to komendą:
- /topic #nazwa_kanału Tekst
Opuszczanie kanału
Kanał można generalnie opuścić na 4 sposoby:
- dobrowolnie: poprzez napisanie komendy /part #nazwa_kanału, lub po prostu /part gdy aktualnie mamy aktywne okno z tym kanałem; podobny efekt daje też w większości popularnych klientów IRC zamknięcie okna z danym kanałem
- przymusowo: na skutek wykonania przez jednego z operatorów komendy /kick, która wyrzuca nas z kanału - po wyrzuceniu można wrócić komendą /join #nazwa_kanału, o ile nie jest się na tym kanale zbanowanym
- przymusowo lub dobrowolnie: na skutek zerwania łącza z serwerem
- przymusowo: na skutek splitu (zaniku łączności między serwerami IRC).
Uwagi na temat wychodzenia z kanału
Po zerwaniu łącza nasz nick jest widoczny przez jakiś czas na liście użytkowników wszystkich kanałów, na których się przebywało, co nazywane jest "zamienieniem się w ducha"; dlatego na ogół zaleca się nie wyłączać programu do IRC zanim nie opuści się wszystkich kanałów; częste wychodzenie z pozostawieniem "ducha" jest uważane za naruszenie netykiety IRC-a i dowodem na ogólny brak wychowania, podobnie jak wychodzenie z kanału bez żadnego pożegnania.
Opuszczenie kanału przez ostatniego jego użytkownika powoduje, że kanał "znika" przynajmniej, do czasu aż ktoś ponownie na niego nie wejdzie. Serwer nie zapamiętuje historii kanału. Gdy kanał "znika", serwer całkowicie "zapomina" o jego dawnym istnieniu. Nie ma więc możliwości automatycznego odzyskania statusu operatora kanału, który się opuściło, nawet gdy wcześniej taki status się miało, w sytuacji, gdy ktoś w międzyczasie dany kanał ponownie utworzy. W niektórych sieciach IRC istnieją specjalne usługi, umożliwiające rejestrację kanału, takie jak np: "chanserv". W sieciach, w których tej usługi nie ma, jedynym sposobem "utrzymania" kanału jest pozostawienie na nim grupy wzajemnie wspierających się botów (programów pilnujących kanału), działających z kilku różnych serwerów.
Tryby kanału
Oprogramowanie serwerów IRC umożliwia ustawianie tzw. trybów kanału. Prawo ich zmiany posiadają wyłącznie operatorzy kanału. Tryb kanału zmienia się za pomocą komendy /mode:
- /mode #nazwa_kanału +parametry -parametry
Parametry przyjmują postać jednoliterowych skrótów. Znak "+" oznacza włączenie trybu, znak "-" wyłączenie. Komenda umożliwia jednoczesną zmianę wszystkich parametrów na raz lub tylko jednego. Użycie tej komendy bez żadnych parametrów wyświetla aktualny tryb kanału.
Lista trybów
- publiczny - jest to standardowy tryb kanału zaraz po jego utworzeniu - dozwolone jest na nim wówczas wszystko, jest on widoczny na liście kanałów, także dla tych którzy na nim nie przebywają, lista użytkowników kanału jest w pełni jawna
- prywatny - +p - lista osób na nim przebywających staje się "tajna" dla osób na nim nie przebywających - nie można np: wyświetlić listy osób przebywających na tym kanale za pomocą komendy /whois
- sekretny - +s - kanał jest niewidoczny w ogólnodostępnym spisie kanałów, ponadto po użyciu komendy /whois nick - informacja o tym, że ktoś przebywa na tym kanale jest ukrywana
- No external messages - +n - na kanał nie można wysyłać komunikatów komendą /notice #kanał gdy się na nim nie przebywa
- zablokowany topic - +t - topic mogą zmieniać wyłącznie operatorzy kanału
- moderowany - +m - na takim kanale mówić mogą tylko operatorzy oraz użytkownicy, którzy dostaną od operatorów głos, co jest zaznaczane na liście użytkowników kanału przez flagę "+"
- na zaproszenie - +i - na taki kanał można wejść tylko po zaproszeniu otrzymanym komendą /invite #nazwa_kanału nick, którą wydawać mogą operatorzy kanału
- ograniczony - +l liczba użytkowników - na kanale na raz może przebywać tylko określona liczba użytkowników; gdy zostanie osiągnięta kolejni użytkownicy nie mogą wejść na kanał do momentu aż ktoś go nie opuści
- na hasło - +k hasło - wejście na kanał wymaga podania hasła; robi się to komendą /join #nazwa_kanału hasło.
Przykłady
- /mode #wikipedia +pstm-i
- kanał #wikipedia stanie się prywatny, sekretny, z zablokowanym topicem, moderowany i jednocześnie przestanie być na zaproszenie (o ile wcześniej był)
- /mode #wikipedia +l 120 +k kasztany_na_placu_Pigalle
- kanał #wikipedia zostanie ograniczony do 120 użytkowników, a wejście będzie możliwe po podaniu hasła kasztany_na_placu_Pigalle
Uwagi
- tryb +s włącza jednocześnie tryb +p
- tryb +i wyłącza tryb +k i wice-versa
- na wielu serwerach standardowym trybem po utworzeniu kanału nie jest "publiczny" lecz "+n" lub "+nt"
Oprócz tego komenda /mode umożliwia też kontrolę nad użytkownikami.
Nadawanie i odbieranie statusu operatora
Każdy operator kanału może podzielić się swoją władzą, przez nadanie statusu operatora innemu użytkownikowi. Nadawanie statusu dokonuje się za pomocą komendy:
- /mode #nazwa_kanału +o nick
Za pomocą jednej komendy można nadać na raz status operatora maksymalnie trzem użytkownikom:
- /mode #nazwa_kanału +ooo nick1 nick2 nick3
Wiele klientów IRC posiada alias tej komendy, który przybiera zwykle postać /op nick, gdzie /op = /mode #nazwa kanału +o. Alias umożliwia jednak zwykle nadanie statusu tylko jednemu użytkownikowi.
Odbieranie statusu operatora robi się dokładnie tę samą komendą, tylko ze znakiem "-":
- /mode #nazwa_kanału -o nick
podobnie można odebrać status operatora maksymalnie trzem użytkownikom:
- /mode #nazwa_kanału -ooo nick1 nick2 nick3
Wiele klientów IRC posiada alias tej komendy, który przybiera zwykle postać /deop nick, gdzie /deop = /mode #nazwa kanału -o. Alias umożliwia jednak zwykle odebranie statusu tylko jednemu użytkownikowi.
Nadawanie i odbieranie statusu operatora można z sobą mieszać. Np:
- /mode #nazwa_kanału -o+o-o nick1 nick2 nick3 = /mode #nazwa_kanału -oo+o nick1 nick3 nick2
odbierze status nick1 i nick 3 a nada go nick2. Tego typu "tricki" nie są możliwe do wykonania za pomocą aliasów /op i deop.
- Uwagi
- Użytkownik, który dostanie status operatora staje się technicznie równorzędny operatorowi który mu ten status nadał. Nie istnieje zatem hierarchia operatorów i nie ma znaczenia kto komu nadał status operatora. Nadanie tego statusu wiąże się zatem z ryzykiem, że osoba, która go dostała od nas może "nielojalnie" odebrać ten status nam.
Banowanie i wyrzucanie
Użytkownicy mogą być wyrzucani z kanału za pomocą komendy:
- /kick #nazwa_kanału nick powód.
Komenda ta może być wydawana tylko przez operatorów kanału. Użytkownik wykopany z kanału może w każdej chwili nań wrócić komendą /join #nazwa_kanału, chyba że zostanie zbanowany. W momencie wykopania serwer wysyła wyrzuconemu użytkownikowi komunikat o tym fakcie, z powodem podanym w komendzie /kick. Podawanie tekstu powodu jest opcjonalne. Operator może wykopać użytkownika bez wpisywania w komendzie powodu.
Banowanie, czyli zablokowanie możliwości wejścia na kanał dla określonego użytkownika lub grupy użytkowników dokonuje się komendą:
- /mode #nazwa kanału +b nick!user@host powód
gdzie nick!user@host to klucz definiujący albo tylko jednego użytkownika, albo całą ich grupę. W kluczach tych można używać tych samych znaków, co przy kluczach wyszukiwania kanałów. Po założeniu bana, użytkownik, który pasuje do podanych kryteriów dostanie przy próbie wejścia na kanał komunikat, że jest zbanowany, kto go zbanował oraz powód zbanowania podany w komendzie /mode +b. Podawanie powodu jest opcjonalne. Przykłady:
- /mode #wikipedia +b polimerek
spowoduje zbanowanie użytkownika o nicku polimerek. Jeśli jednak polimerek rozłączy się z siecią IRC i wejdzie powtórnie pod innym nickiem to będzie mógł w ten sposób ominąć ten ban. Wystarczy, że zmieni w nicku choć jedną literkę: Np ten ban nie zadziała na nicka "polimerek_"
- /mode #wikipedia +b *@*.pl
spowoduje zbanowanie wszystkich użytkowników łączących się z serwerem z domeny .pl. Ominięcie tego rodzaju bana jest dużo trudniejsze. Wymaga albo dostępu do usługi cloak albo zdalnego połączenia się z komputerem nie znajdującym się w domenie .pl i uruchomieniem na nim klienta IRC.
- /mode #wikipedia +b *oli*
spowoduje zbanowanie wszystkich, którzy mają w swoim nicku tekst "oli" - a zatem "polimerek_", "olinka" oraz "wolinek" nie będą mogli wejść na kanał.
- /mode #wikipedia +b *!*@*
Spowoduje, że dokładnie wszyscy będą zbanowani - czyli nikt nie będzie mógł wejść na kanał!
Użycie komendy:
- /mode #kanał +b
bez dalszych parametrów wyświetla listę aktualnych banów na danym kanale.
Przykład listy banów:
/mode #wikimedia +b #wikimedia *!*@scrod.soc.lib.md.us set by Essjay!i=Essjay@wikimedia/Essjay (Wed Jun 07 08:57:43) #wikimedia *!n=cmaguina@201.230.235.* set by Headcrab!n=aschenck@wikipedia/Linuxbeak (Thu May 25 04:40:13) #wikimedia *!*@adsl-68-89-130-209.dsl.snantx.swbell.net set by Linuxbeak!n=aschenck@wikipedia/Linuxbeak (Tue May 23 03:24:35) #wikimedia End of Channel Ban List
Serwery ograniczają zwykle liczbę możliwych banów, które można założyć na jednym kanale do pewnej liczby, zwykle 16 lub 32. Zdjęcie bana wymaga użycia dokładnie takiej samej komendy jak do zbanowania (z dokładnie tym samym kluczem), tyle że z parametrem -b:
- /mode #wikipedia -b *oli* usuwa bana założonego komendą /mode #wikipedia +b *oli*
nawet drobna różnica w kluczu bana powoduje, że komenda /mode #kanał -b - nie zadziała.
Skutki lagów i splitów - czyli desynchronizacja kanałów
Dla osób, które znalazły się "po drugiej stronie", split wygląda jakbyśmy opuścili nagle kanał. Dla nas i osób które zostały się "po naszej stronie" splitu wygląda to z kolei tak, jakby to tamte osoby wyszły z kanału, a my na nim nadal przebywamy, tyle że w mniejszym gronie. Po zakończeniu splitu, nasz powrót na kanał wygląda tak samo jak wejście nań komendą /join. Jedyne co informuje, że nastąpił split a później jego zakończenie jest nagłe masowe opuszczenie lub wejście całej grupy użytkowników.
Split powoduje też desynchronizację kanału. Często w wyniku splitu część operatorów kanału zostaje się po jednej a druga część po drugiej stronie splitu. Jeśli operatorzy po jednej stronie zmienią topic, tryb kanału, odbiorą lub nadadzą komuś status operatora, po zakończeniu splitu serwery mają poważny problem jak scalić kanał.
Różne wersje serwerów radzą sobie z tym na różne sposoby. Najprostszym rozwiązaniem jest zapamiętywanie przez serwery stanu kanału sprzed splitu i doprowadzenie do jego powrotu przez cofnięcie efektów wszystkich komend, które zostały wykonane przez operatorów w czasie jego trwania. Serwery przywracają więc tryb kanału, odbierają statusu operatora, tym którzy go dostali w czasie splitu i nadają go na powrót tym którzy go w trakcie splitu utracili. Ten mechanizm działa jednak tylko przy pojedynczym splicie. Gdy następuje seria splitów i ponownych odtworzeń połączeń serwerów, serwery często nie nadążają z synchronizowaniem kanałów. W efekcie stan kanału, czyli jego tryby i lista operatorów mogą być po serii splitów zupełnie różne na różnych serwerach jednej sieci.
Podobne efekty desynchronizacji mogą też następować w czasie długich lagów. Lagom podlegają bowiem nie tylko komunikaty wysyłane na kanał ale także realizacja komend. Jeśli zatem istnieje długi lag między dwoma serwerami, operatorzy kanałów działający z jednego serwera mogą wykonywać komendy, które są sprzeczne z komendami operatorów działających z drugiego serwera, co w efekcie powoduje, że stan kanału na obu serwerach staje się różny.
Ponowne zsynchronizowanie kanału możliwie jest na trzy sposoby:
- użytkownicy kanału zgodnie, w jednym momencie decydują się na jego opuszczenie - jest to jednak dość ryzykowne, gdyż jest świetną okazją do jego przejęcia
- operatorzy działający z różnych serwerów wykonują w skoordynowany sposób serię komend, która uzgadnia stan kanału na wszystkich serwerach - wymaga to oczywiście wzajemnego zaufania operatorów do siebie
- na kanał wchodzi ircop, który czasowo odbiera wszystkim status operatora i przywraca odpowiedni stan kanału.
Użytkownicy
Użytkownikiem sieci IRC staje się każdy, kto zdoła się podłączyć swoim klientem do jednego z serwerów.
Serwery przechowują podstawowe informacje takie jak adres komputera, z którego użytkownik działa, jego nick, tryb działania, lista kanałów na których przebywa, czas wejścia na serwer i czas od wysłania do sieci ostatniego komunikatu. Informacje te są jawne i każdy użytkownik może się z nimi zapoznać wysyłając do serwera odpowiednią komendę-zapytanie. Użytkownicy nie mają bezpośredniego wpływu na te informacje (oprócz zmiany nicka) i nie mogą ich sami usuwać lub modyfikować.
Część informacji o użytkowniku jest przechowywana i udostępniana (lub nie) przez jego klienta IRC. Większość klientów pozwala w prosty sposób modyfikować te informacje i zezwalać innym użytkownikom na ich pobieranie lub nie pobieranie. Do informacji tych zalicza się:
- "username" - czyli nazwa użytkownika, a dokładnie to co występuje przed znakiem @ w adresie użytkownika, który łączy się z serwerem IRC; standardowo jest to nazwa konta użytkownika pobrana z jego systemu operacyjnego; można jednak tak skonfigurować klienta IRC aby podawał serwerowi w to miejsce dowolną, inną nazwę
- "version" - czyli informacja o używanym kliencie i systemie operacyjnym, w którym działa
- "time" - czas systemowy użytkownika
i kilka innych
Pozyskiwanie informacji o jednym użytkowniku
Podstawową komendą umożliwiającą pozyskanie informacji o danym użytkowniku jest:
- /whois nick
Po wysłaniu tej komendy do serwera, zależnie od jego wersji otrzymuje się różną postać odpowiedzi, zawiera ona jednak zazwyczaj: adres komputera użytkownika, nazwę użytkownika (wpisaną w odpowiednim miejscu do klienta), informację o serwerze z którego korzysta, czasie zalogowania, czasie wysłania ostatniego komunikatu (idle time), nie-sekretnych kanałach na których przebywa oraz trybie przyznanym przez serwer. Przykładowy efekt działania:
/whois poli_ poli_ is n=Poli_@wikipedia/Polimerek * Tomek G. poli_ on #wikimedia, #wikimedia-pl @#wikipedia-pl poli_ using clarke.freenode.net Fremont, California, US poli_ is identified to services poli_ has been idle 15mins 13secs, signed on Tue Jun 13 19:42:59 poli_ End of /WHOIS list.
Whois wyświetla tylko informację przechowywaną na serwerze i nie powoduje kontaktowania się serwera z klientem badanej osoby. O fakcie wykonania komendy /whois nick sam badany nie jest w żaden sposób informowany przez serwer, stąd nie istnieje ryzyko, że dowie się on, że go w ten sposób "sprawdzamy". Większość informacji z whois jest automatycznie generowana przez serwer i użytkownik nie ma żadnego wpływu na jej kształt.
Część informacji jest jednak pobierana przez serwer z klienta w momencie, gdy się na niego logujemy (nick, username i adres internetowy naszego komputera) możemy ją więc zmodyfikować zmieniając ustawienia naszego klienta zanim się połączymy z serwerem. Po uzyskaniu połączenia, jedyny sposób dokonania zmian tych danych to rozłączyć się, zmienić ustawienia klienta i ponownie się zalogować do niego. Wyjątek stanowi tylko zmiana nicka.
Pozyskiwanie list użytkowników
Komenda /who daje możliwość wyświetlenia listy użytkowników spełniających określone kryterium. Jest to możliwe przy zastosowaniu klucza wyszukiwania, którego składnia jest taka sama jak we wcześniej opisanych komendach "/list", "/mode +b" itp.
Np, jeśli chcemy wyświetlić listę wszystkich użytkowników, którzy działają spod adresów w domenie internetowej "pl" piszemy:
- /who *.pl
W wyniku czego otrzymamy listę wyglądającą mniej więcej tak:
#koffice mike_ H n=mike@uf122.internetdsl.tpnet.pl :0 Michal Sciubidlo #tto obi_1 H@ n=obi_1@nat.henet.pl :0 ask #cakephp kabturek__ H i=famuhu@nat-6.aster.pl :0 kabturek #worldwind m_k H i=Michal@dsx2.neoplus.adsl.tpnet.pl :0 Michal Kursa #Azureus-Polish toudim5 H n=OzPZQiAN@mie3.1000lecie.pl :0 Azureus IRC #ubuntu-pl Cyr4x H n=Cyr4x@cn.ramtel.pl :0 Cyr4x
Jeśli chcemy wyświetlić listę wszystkich użytkowników, których nick zaczyna się na "po" piszemy:
- /who po*
Komenda:
- /who *
wyświetli nam listę wszystkich użytkowników danej sieci IRC. W dużych sieciach, gdzie na raz przebywa tysiące użytkowników wyświetlanie listy wszystkich nie jest jednak najlepszym pomysłem. Zwykle serwer w czasie wysyłania do nas takiej listy rozłączy się w pewnym momencie, z powodu przekroczenia dozwolonego limitu danych w jednostce czasu.
Komenda:
- /names #nazwa_kanału
wyświetla listę nicków wszystkich użytkowników tego kanału, razem z informacją o ich statusie na kanale. W przypadku kanałów publicznych (niedziałających w trybie +s lub +p) listę tę można uzyskać bez potrzeby wchodzenia na kanał. W przypadku kanałów sekretnych i prywatnych komenda jest, zależnie od rodzaju serwera albo ignorowana, albo zwracana jest pusta lista użytkowników (sprawiająca wrażenie jakby kanał nie istniał) lub wysyłana jest informacja z odmową wykonania komendy. Dla kanałów prywatnych i sekretnych komenda ta zadziała dopiero po tym jak wejdziemy na taki kanał.
W pewnym sensie podobnie działa komenda:
- /who #nazwa_kanału
wynik /names od /who różni się jednak tym, że /names wyświetla krótką listę nicków w jednej linii, a /who listę nicków, przypisanych do nich nazw i adresów ich komputerów, przy czym w jednej linii tekstu znajduje się informacja o jednym nicku.
Przykład rezultatu komendy /names:
/names #wikipedia-pl #wikipedia-pl @tsca alx-pl @WarX @MChrist Shaqspeare @poli_ Roman_92 Jedyooo A_Bach Ark-pl @Maire Catz Stimoroll @Derbeth Herr_Kriss Malin @szwedzki @Lukas3 @Ausir @ChanServ DoZerPL TOR_CNR jackal @DonnerJack #wikipedia-pl End of /NAMES list.
Przykład rezutatu komendy /who #nazwa_kanału:
#wikipedia-pl tsca H@ n=tsca@port10.ds8-hj.adsl.cybercity.dk :0 [[m:user:tsca]] #wikipedia-pl alx-pl H n=alx-pl@j272315.upc-j.chello.nl :0 Aleksy Mazan #wikipedia-pl WarX H@ n=fizyk@h12-243-260-56-static.e-wro.net.pl :0 Unknown #wikipedia-pl MChrist H@ n=MonteChr@vir.mezi2-net.com :0 Christ #wikipedia-pl Shaqspeare H n=kemalata@HSI-KBW-185-216-453-034.hsi.kabelbw.de :0 ggg #wikipedia-pl poli_ H@ n=Poli_@wikipedia/Polimerek :0 Tomek Ganicz #wikipedia-pl Roman_92 H i=Roman@c63-246.icpnet.pl :0 Roman Izdebski #wikipedia-pl Jedyooo H n=jedyooo@chello153207213040.chello.pl :0 Jedyooo #wi