IRC/Użytkownicy

Z Wikibooks, biblioteki wolnych podręczników.
< IRC

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[edytuj]

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[edytuj]

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@unaffiliated/tsca :0 [[m:user:tsca]]
#wikipedia-pl alx-pl H n=alx-pl@d4n0f4.upc-j.chello.net :0 Aleksy Mazan
#wikipedia-pl WarX H@ n=fizyk@static.e-uni.net.pl :0 Unknown
#wikipedia-pl MChrist H@ n=MonteChr@vir.mezi-net.com :0 Christ
#wikipedia-pl Shaqspeare H n=kemalata@hsi.kabelbw.de :0 ggg
#wikipedia-pl poli_ H@ n=Poli_@wikipedia/Polimerek :0 Tomek Ganicz
#wikipedia-pl Roman_92 H i=Roman@icpnet.pl :0 Roman Izdebski
#wikipedia-pl Jedyooo H n=jedyooo@user.chello.pl :0 Jedyooo
#wikipedia-pl A_Bach H n=name@ako74.internetdsl.tpnet.pl :0 A_Bach
#wikipedia-pl Ark-pl H n=chatzill@di12.neoplus.adsl.tpnet.pl :0 New Now Know How
#wikipedia-pl Maire H@ n=eigann@by52.neoplus.adsl.tpnet.pl :0 New Now Know How
#wikipedia-pl Catz H i=adam@host.lanet.net.pl :0 Przemysław Okoń
#wikipedia-pl Stimoroll G i=masq258@wikipedia/Stimoroll :0 New Now Know How
#wikipedia-pl Derbeth G@ i=tomasz2@wikipedia/Derbeth :0 Derbeth
#wikipedia-pl Herr_Kriss H i=java@wikimedia-commons/Herr_Kriss :0 moonspell
#wikipedia-pl Malin H n=Malin@isatel.com.pl :0 malin
#wikipedia-pl szwedzki H@ n=suidisz@dc100.neoplus.adsl.tpnet.pl :0 szwedzki
#wikipedia-pl Lukas3 H@ n=chatzill@au13.neoplus.adsl.tpnet.pl :0 New Now Know How
#wikipedia-pl Ausir H@ n=Ausir@sk-44.net :0 Ausir
#wikipedia-pl ChanServ H@ ChanServ@services. :0 Channel Services
#wikipedia-pl DoZerPL H i=dozer@.autocom.pl :0 Damian
#wikipedia-pl TOR_CNR G i=tor@wikipedia/TOR :0 TOR
#wikipedia-pl jackal H i=jackal@unaffiliated/jackal :0 jackal
#wikipedia-pl DonnerJack H@ n=A_Bach@polanet.pl :0 Lord Bachus bocik
#wikipedia-pl End of /WHO list.

Prywatna komunikacja między użytkownikami[edytuj]

Oprócz możliwości rozmowy z innymi użytkownikami na kanałach IRC oferuje też możliwość prowadzenia z nimi bezpośrednich rozmów poza kanałami. Podstawową komendą służącą do tego celu jest:

/msg nick Tekst komunikatu

Tekst komunikatu wysłany tą komendą trafia bezpośrednio do danej osoby i nie widzą go inni użytkownicy. W zależności od konfiguracji klienta komunikat ten pojawia się w osobnym oknie lub w oknie aktualnie aktywnego kanału. Gdy pojawia się w aktywnym oknie kanału, odróżnia ją od tekstów widocznych dla wszystkich na kanale znak "->" za którym znajduje się nick osoby, która ten komunikat wysłała. Np po wysłaniu przez osobę o nicku "janek" komunikatu do kazia:

/msg kaziu Witam kolegę

zobaczy on:

->*janek* Witam kolegę

Ze względu na to, że ciągłe kontaktowanie się przez wypisywanie komendy /msg nick komunikat jest uciążliwe istnieje komenda:

/query nick

która automatycznie otwiera nowe okno lub panel w niemal każdym kliencie. Okno to przypomina swoją strukturą okno kanału, tyle że jest przeznaczone tylko dla dwóch osób. Pisząc w tym oknie nie ma już potrzeby poprzedzania komunikatów jakąkolwiek komendą. Gdy klient jest tak skonfigurowany, że osobne okno jest otwierane również po otrzymaniu komendy /msg różnica między "/query" i "/msg" jest nieodczuwalna. Jeśli jednak nie wiemy jak skonfigurowany jest klient naszego rozmówcy a chcemy, aby u niego otworzyło się osobne okno lub panel rozmowy prywatnej, należy użyć komendy "/query".

W pewnym sensie podobnie do /query zadziałałoby utworzenie nowego kanału z trybem "+si" (sekretny i wymagający zaproszenia) i zaproszenie nań osoby z którą chcemy porozmawiać, jest to jednak w sumie bardziej kłopotliwe.

Wszystkie komunikaty wysyłane komendami "/msg" i "/query" przechodzą przez serwer, może je zatem podsłuchać administrator serwera. Ponadto są one tak samo zależnie od splitów i lagów jak rozmowy prowadzone na kanałach. Jeśli zależy nam na szybkości i poufności bezpieczniej jest użyć komendy /dcc chat. Jej użycie jest dokładniej wyjaśnione w rozdziale "Usługi DCC i CTCP".

Zmiana nicka[edytuj]

Normalnie, zaraz po połączeniu się serwerem pobiera on z naszego klienta nasz nick, który wpisaliśmy do niego w ramach procedury jego konfiguracji. Jeśli jednak chcemy z jakiegoś powodu zmienić nick możemy to zrobić bez rozłączania się serwerem i zmiany konfiguracji klienta. Można to zrobić za pomocą komendy:

/nick nowy_nick

Aby komenda ta zadziałała "nowy_nick" musi być wolny, tzn. w danym momencie nie ma nikogo innego kto ten nick używa. Jeśli ktoś taki jest, dostajemy komunikat z serwera informujący nas o tym fakcie i musimy wybrać jakiś inny nick. Nick można zmienić w każdej chwili i tyle razy ile się chce. Częste zmiany nicka są jednak uciążliwe dla innych użytkowników kanału i dlatego za zbyt częste jego zmiany można nawet dostać bana.

W przypadku serwerów opartych na oprogramowaniu wywodzącym się z DALnetu możemy w momencie zmiany nicka dostać ostrzeżenie, że jest on już zarejestrowany, nawet jeśli aktualnie jego "właściciel" jest nieobecny. Nicka tego zwykle możemy mimo to używać, ale tylko do czasu pojawienia się jego prawowitego właściciela. Osoby, które go/ją znają mogą jednak odebrać negatywnie sam fakt posługiwania się cudzym nickiem, lepiej jest go więc po takim komunikacie zmienić. Sposoby rejestrowania nicka w sieciach o architekturze DALnetu są dokładnie opisane w rozdziale "Dodatkowe serwisy".

W sieciach opartych na oprogramowaniu IRCnetu nicki nie są rejestrowane. Jeśli jednak serwer przyznał nam tryb "secure" mamy całkowicie zablokowaną możliwość użycia komendy "/nick" i zmiana nicka wymaga rozłączenia się z siecią IRC. Jakkolwiek w IRCnecie nicki nie są rejestrowane może zdarzyć się, że ktoś czuje się właścicielem danego nicka i jeśli go będziemy używać możemy się spodziewać agresywnych reakcji właściciela tego nicka i jego znajomych. Najlepiej jest w tej sytuacji zastosować zasadę "ustępowania głupiemu" i np. zmienić nasz nick o jedną literę lub dodać na jego końcu "_" lub inny tego rodzaju znak.

Tryby użytkowników[edytuj]

Użytkownikom IRC przydzielane są tzw. tryby działania. Tryby te dzielą się na globalne, związane z relacjami z serwerem i tryby kanałowe, związane z uprawnieniami na kanale. Jeden użytkownik może mieć różne tryby kanałowe na różnych kanałach nie może mieć jednak różnych trybów serwerowych, przynajmniej w ramach jednej sieci IRC.

Tryby globalne[edytuj]

Tryby globalne są zazwyczaj automatycznie przydzielane przez serwer w momencie łącznia się z nim. Zależnie od konfiguracji serwera tryby te można sobie w pewnym zakresie samodzielnie zmieniać lub nie. Jedni użytkownicy nie mogą zmieniać trybów globalnych innym. Wyjątkiem są tylko IRCopowie, którzy mogą to robić.

Do zmiany własnego trybu globalnego służy komenda:

/mode nick parametry

gdzie "parametry" to jednoliterowe skróty trybów poprzedzone znakiem "+" (włączenie) lub "-" (wyłączenie). Użycie tej komendy bez parametrów:

/mode nick

wyświetli nam informację o naszych aktualnych trybach globalnych.

Niestety skróty trybów globalnych stosowanych przez różne wersje oprogramowania serwerów różnią się dość zasadniczo. Do najważniejszych z punktu widzenia zwykłego użytkowników trybów zaliczyć można:

  • tryb IRCopa: +a - daje on "superuprawnienia" tożsame z uprawnieniami administratora serwera, przydzielić może go tylko inny IRCop
  • tryb invisible: +i - powoduje on, że nasz nick nie będzie wyświetlany na listach generowanych komendą /who klucz ani komendą /names adresowaną do kanału, na którym osoba ją wysyłająca nie przebywa; tryb ten nie chroni jednak przed wyświetleniem informacji o nas komendą /whois nick oraz /names w stosunku do kanału na którym przebywa osoba ją wysyłająca
  • tryb secure: +s - istnieje ona na serwerach z oprogramowaniem wywodzącym się z IRCnetu; jest on zwykle przydzielany użytkownikom działającym z "niedozwolnych adresów" (np: z dynamicznych IP, adresów bez zwrotnego DNS, adresów spoza określonego zakresu "zaufanych"); tryb ten powoduje, że nie użytkownik nie może wykonywać pewnych komend, zwykle "mode, nick i msg"
  • tryb silent: +s - istnieje ona na serwerach z oprogramowaniem wywodzącym się z DALnetu i Undernetu i oznacza blokadę automatycznego wysyłania większości komunikatów systemowych serwera, co oszczędza łącza, a większość zwykłych użytkowników i tak nie czyta tych komunikatów
  • tryb registered: +r - istnieje on na serwerach z oprogramowniem wywodzącym się z DALnetu i Undernetu; jest on przydzielany użytkownikom, którzy zarejestrowali na serwerze swój nick lub adres swojego komputera; brak włączonego trybu +r daje zwykle podobny efekt jak tryb "+s" na serwerach IRC.

Tryby kanałowe[edytuj]

Istnieją trzy tryby kanałowe:

  • zwykłego użytkownika
  • użytkownika z prawem do głosu : "+v" (ma to sens tylko na kanałach moderowanych)
  • użytkownika z prawami operatora : "+o"

Tryby kanałowe nadaje się komendą:

/mode #nazwa_kanału +o (lub +v) nick

jak to zostało dokładniej wyjaśnione w rozdziale "Kanały"

Sposób oznakowywania trybów na listach użytkowników[edytuj]

Listy użytkowników generowane komendami /who i /names zawierają specjalne znaki symbolizujące określone tryby, zarówno globalne jak i kanałowe.

Tryby są oznaczane różnie w różnych wersjach serwerów, ale większość z nich stosuje następującą symbolikę:

* - oznacza IRCopa
@ - oznacza operatora kanału
+ - oznacza użytkownika z prawem do głosu na kanale moderowanym
! - oznacza użytkownika "ducha", który przez określony, długi czas nie wysłał żadnego komunikatu na serwer
~ - (bezpośrednio przed adresem internetowym) oznacza użytkownika działającego z nierozpoznanego adresu lub niezarejestrowanego (z trybem +s w IRCnecie lub z trybem -r w DALnecie)
n/i= (bezpośrednio przed adresem internetowym) - oznacza użytkownika działającego w trybie normalnym (n) lub "niewidzialnym" (invisible +i)
G/H - oznacza odpowiednio użytkownika "uśpionego" komendą /away (G = gone) lub aktywnego (H - here)