20
Gimnazija Leskovac Maturski rad iz informatike Tema: -psyBNC Emulator Učenik: Mentor: Nikola Jovanović, IV-7 Prof. Lidija Jović Leskovac, maj 2010.

Maturski Rad Iz Informatike

Embed Size (px)

Citation preview

Page 1: Maturski Rad Iz Informatike

Gimnazija

Leskovac

Maturski rad iz informatike

Tema: -psyBNC Emulator

Učenik: Mentor:

Nikola Jovanović, IV-7 Prof. Lidija Jović

Leskovac, maj 2010.

Page 2: Maturski Rad Iz Informatike

2

Sadržaj

Uvod .......................................................................................................................................... 3

Šta je IRC? ............................................................................................................................... 3

Istorijat IRC zajednica .......................................................................................................... 3

Nastanak IRC klijenata i mIRC............................................................................................ 4

IRCd Events ...................................................................................................................... 5

mIRC Scripting................................................................................................................. 5

mIRC Dialog prozori ....................................................................................................... 6

dStudio v1.0 Final ........................................................................................................... 6

Sockets u mIRC-u ........................................................................................................... 7

Osnovne funkcije u scriptingu ............................................................................................. 8

Aliasi (uprošćavanje imena funkcija) ......................................................................... 8

Echo (ispisivanje podataka na glavni prozor) .......................................................... 9

–psyBNC Bouncer ................................................................................................................. 10

PuTTY ............................................................................................................................... 10

Instalacija bouncera na udaljenom računaru ......................................................... 11

–psyBNC Emulator u mIRC-u ............................................................................................ 15

Aliasi i meni .................................................................................................................... 15

Load, Unload, Start, Connect i Sockets ................................................................... 16

Povezivanje dialoga sa komandama......................................................................... 18

Zaključak ................................................................................................................................ 19

Literatura................................................................................................................................ 20

Page 3: Maturski Rad Iz Informatike

3

Uvod

Internet, kao najveća svetska mreža je od trenutka svog nastanka

služio za razmenu informacija. Ljudi su u početku razmenjivali informacije putem elektronske pošte (e-mail), gde bi se elektronska

poruka čuvala na serveru do onog trenutka kada se adresirani primalac poruke ne konektuje na internet i preuzme je sa servera. Nažalost, to nije bio najadekvatniji način za razmenjivanje informacije zbog brzine.

Zbog domišljatosti kakvu su ljudi posedovali, došli su na ideju da bi razmena informacija mnogo bolje funkcionisala kada bi se odvijala u

tekućem vremenu (trenutni prenos podataka). To je bio presudni trenutak za razvoj takozvanog Internet Relay Chat-a, poznatijim pod

skraćenicom IRC.

Šta je IRC?

Internet Relay Chat (IRC) je oblik trenutnog dopisivanja preko Interneta ili sinhronizovanog razmena informacija. Primarno je

dizajniran za grupne razgovore u diskusionim sobama, koji se nazivaju kanali, ali omogućava i jedan-na-jedan razgovore koji se odvijaju

preko privatnih poruka. U Maju 2009. godine, 100 najvećih IRC mreža koja su bila na približno 1500 servera, su uspešno „služila” više od pola

miliona korisnika u jednom trenutku, na više od sto hiljada kanala. IRC je stvorio Jarkko Oikarien u Avgustu 1988. godine u nameri da zameni program MUT (MultiUser Talk). Jarkkov prvi server je poznat po imenu

BitNET Relay. Korišćen je za širenje informacija za vreme Golfskog rata. Do dana današnjeg, logovi razgovora se čuvaju u ibiblio arhivi.

Softver za IRC klijente je dostupan gotovo svakom kompjuteru koji podržava TCP/IP konekcije.

Istorijat IRC zajednica

Čim je IRC izgubio na popularnosti, postao je ono što danas nazivamo

„social-networking” ili mreža za društveno spajanje. Svako je posećivao IRC servere iz ovog ili onog razloga. Neki su hteli da se

virtualno provode, neki da se upoznaju sa nepoznatim ljudima, a neki da nauče nešto i da prave online konferencije o projektima na kojim su

radili. Što se tiče Srbije, jedan od prvih servera je bio SerbianCaffe, koji je bio poražen od novoroĎene Krstarice. Osim mogućnosti pretraživanja Weba na način na koji Google to radi, Krstarica je htela

Page 4: Maturski Rad Iz Informatike

4

da stekne popularnost preko IRC servera. Prva zajednica koja se interesovala za programiranje i eksploatisanje loše obezbeĎenih Web

sajtova je bila UnderGround Security (UGS). Mnogi su dolazili u nameri da nauče nešto novo o kompjuterima, a mnogi su bili na kanalu #ugs u

nameri da se proslave kao hakeri. Tu je napravljena sledeća podela:

a. Hackers (hakeri)

i. Blackhats (crni šeširi)

ii. Whitehats (beli šeširi)

b. Crackers (krekeri)

c. Lamers (lejmeri)

d. Script Kiddies (skript klinci)

Hakeri su bili gospoda na IRCu. Zbog toga je nastala podela na crne šešire i bele šešire. Crni su bili oni koji rade loše stvari na Internetu

(uništavanje sajtova, pravljenje virusa, itd.) i stereotip za hakera jeste da je on loš. Nasuprot crnim, belim šeširima su pripadali programeri

koji su tražili programerske propuste u postojećim sajtovima, programima i pravili zakrpe (patches).

Krekeri su bili programeri koji su hakovali programe za sopstvene programe i njihovo loše delo je bilo onemogućavanje zarade

kreatorima nekog programa, zato što bi izbacili krekovanu verziju nekog programa.

Lejmeri su bili ljudi koji samo uništavaju iz dosade, koristeći tuĎe

programe u loše svrhe. Script Kiddies ili skript klinci su sinonimi za lejmere.

Nastanak IRC klijenata i mIRC

mIRC je Internet Relay Chat klijent za Microsoft Windows operativni

sistem koji je napravio Khaled Mardam-Bey. Iako je potpuno

funkcionalna aplikacija za dopisivanje, mIRC ima sopstveni

programerski jezik koji ga čini jedinstvenim. Programski jezik mIRC

Scripting se podnovljuje i usavršava iz verzije u verziju, a sam jezik

može da se koristi za izmenu grafičkog korisničkog interfejsa (GUI), ali

i za automatizovanje akcija dok je klijent konektovan na server. mIRC

Page 5: Maturski Rad Iz Informatike

5

je skinut preko 23 miliona puta sa CNET-ovog sajta

www.download.com. Nielsen-NetRatings je ocenio mIRC meĎu 10

najpopularnijih Internet aplikacija u 2003. godini. Nije poznato

značenje slova M u imenu programa mIRC, mada autor kaže da može

da znači MU (null) IRC, u slobodnijem prevodu: (nikako) Bez IRCa.

IRCd Events

IRC daemon ili IRCd jeste samostartujući program (process) koji se

pokreće na Linux/Unix serverima i omogućuje klijentima da se

konektuju na IRC server. Pošto na svakom IRC-u možemo da

promenimo nadimak (nick) ili da uĎemo na neki kanal (channel ili

skraćeno chan), mIRC ima podršku za te dogaĎaje (events).

Na primer, kada uĎemo na neki kanal, mi koristimo JOIN event, a

kada napuštamo kanal, koristimo PART event. Postoje mnogo

eventa, ali ćemo navesti samo najčešće korišćene:

JOIN, PART, NICK, CONNECT, DISCONNECT, START, LOAD,

UNLOAD, SOCKOPEN, SOCKREAD, SOCKWRITE, SOCKCLOSE, itd.

Iz samog imena možemo da zaključimo koji event je vezan za koju

akciju na serveru.

mIRC Scripting

mIRC Scripting Language, često nazivan MSL je programski jezik

koji funkcioniše samo unutar mIRC-a. Sastavljen je od par jezika pa

zato ima veoma sličnu sintaksu sa BASH i C++. Primarno korišćenje

ovog jezika jeste za zaštitu kanala od virtualnih korisnika (botova)

kojim ćemo se kasnije pozabaviti, automatizovanje komandi za

identifikaciju nadimka, itd. Skripte se čuvaju u .mrc ili .ini formatu,

a klasičan primer za event LOAD jeste učitavanje .mrc fajla u mIRC.

Load event: on *:load: { echo –a učitano }

Unload event: on *:unload: { echo -a unloaded }

Join event: on *:join:#channel: { echo -a ušao sam na kanal }

Page 6: Maturski Rad Iz Informatike

6

Part event: on *:part:#channel: { echo –a izašao sam sa kanala }

Connect event: on *:connect: { echo –a konektovan }

Disconnect event: on *:disconnect: { echo -a diskontektovan. }

mIRC Dialog prozori

Dialog prozori predstavljaju GUI (Graphic User Interface) unutar

mIRC koda i mogu da se prave direktnim kucanjem u .mrc fajl, a

može se koristiti i program koji pravi prozore, dugmiće i ostale

grafičke detalje automatski. Primer:

; napraviti dialog pod imenom „primer”

dialog primer {

; neka naslov unutar dialoga bude „primer za dialog prozor”

title "Primer za dialog prozor"

; zadamo dimenzije: širina, visina,

size -1 -1 139 38

; opcija dbu aktivna ( da uvek ima standardni broj pixela )

option dbu

; dodajemo dugme close, sa koordinatama

button "Close", 1, 37 7 67 28

}

Ovaj dialog pokrećemo komandom: /dialog –m primer primer

dStudio v1.0 Final

dStudio je aplikacija koja olakšava izradu dialog prozora, napravio

ga je dohcan, član sajta www.mircscripts.org. Osim pravljenja novih

dialog prozora, pomoću dStudia možemo izmeniti i postojeće dialog

prozore uz pomoć Import from Clipboard opcije. Ovaj program je

dosta uticao na IRC zajednice koje su se bavile mIRC Scripting

programskim jezikom, jer je rad u programu bio veoma zahvalan

što se vremena tiče.

Page 7: Maturski Rad Iz Informatike

7

Sockets u mIRC-u

Socket u informatičkom smislu nije ništa više od kombinacije IP

adrese i porta. IP adresa je numerička identifikacija koja je

dodeljena ureĎaju koja koristi Internet. Port je broj koji je vezan za

proces (program) koji koristi Internet. Socketi se nalaze u formatu:

IP_address:PORT – primer: 127.0.0.1:80.

Port je 16-bitni celi broj od 0 do 65535, ukupno 65,536 portova.

Svaki program koristi odreĎeni port za komuniciranje sa

Internetom, a tabela protokola i portova izgleda ovako:

FTP data/command 20/21

TELNET 22

HTTP 80

SMTP 25

POP3 (email) 110

IdentDaemon 113

HTTPS 443

IRC 6665-6669

mIRC dozvoljava pravljenje (kreaciju) novih socket konekcija. Ova

funkcija nam omogućava od dolaženja do informacija sa sajta, do

uploadovanja novih informacija na neki server ili manipulaciju

fajlova na udaljenom računaru.

Kreiranje nove socket() konekcije ostvarujemo komandom:

/sockopen primer www.google.com 80

Page 8: Maturski Rad Iz Informatike

8

Zatvaranje (gašenje socketa) vršimo komandom:

/sockclose primer

Pisanje podataka na socket vršimo komandom:

/sockwrite –n primer GET /search?q=”zexx0r” HTTP/1.1

Svaka komanda u mIRCu se može kombinovati sa eventom, tako da

bi jedan socket event ovako mogao da izgleda:

; na otvoren socket koji se zove „primer”

on *:sockopen:primer: {

; napiši u socketu primer da GET šta dobijamo kada tražimo

„zexx0r” na google

sockwrite -nt primer GET /search?q=”zexx0r” HTTP/1.1

; ovde definišemo hostname (ip adresu)

sockwrite -nt primer Host: www.google.com

}

Rezultati koda se nakon egzekucije koda vraćaju u glavni prozor, a

da bi smo to dobili, moramo da „pročitamo” socket podatke. Ovo

postižemo SOCKREAD komandom.

; kada čitamo podatke sa socketa

on *:sockread:primer: {

; postavljamo lokalnu varijabilu %read

var %read

; sve što dobijemo kao varijabilu, protumačimo

sockread %read

; a zatim ispišemo u glavnom prozoru

echo -a @ $+ $sockname : $+ %read

}

Osnovne funkcije u scriptingu

Aliasi (uprošćavanje imena funkcija)

Aliasi su način da pretvorimo duge komande iz mIRCa u kratke, radi

olakšavanja razmene informacija preko IRCa. Da bi napravili alias,

moramo da imamo osnovno znanje IRC komandi, o kojima smo

Page 9: Maturski Rad Iz Informatike

9

pričali ranije. Aliasi mogu da budu „pozvani” iz komandne linije u

mIRCu, iz drugih aliasa, iz popup menija i skripta (.mrc). Primer:

; alias pod imenom zbirDvaBroja ( aktivacija preko /zbirDvaBroja )

alias zbirDvaBroja {

; postavimo varijabilu x = prvi ukucani broj

set %x $1

; postavimo varijabilu y = drugi ukucani broj

set %y $2

; ispiši rezultat

echo –a Rezultat je: $calc(%x + %y)

}

Nakon što ovaj kod sačuvamo u .mrc fajlu, pozivamo alias iz

komande linije u mIRCu.

/zbirDvaBroja 3 5

U glavnom prozoru dobijamo rezultat: Rezultat je: 8

Naravno, aliasi se mogu koristiti i u druge svrhe, ne samo za

računske operacije. Primer je kada u našem kodu pozivamo dialog

koji je napravljen u dStudiu pod imenom winbnc.

; alias pod imenom psy.dialog (aktiviramo ga iz komandne linije

pomoću: /psy.dialog )

alias psy.dialog {

; ako je dialog winbnc aktivan, zatvori ga

if ($dialog(winbnc)) { dialog –x winbnc }

; u suprotnom, otvori dialog winbnc

else { dialog –m winbnc winbnc }

}

Echo (ispisivanje podataka na glavni prozor)

Echo komanda je preuzeta iz BASH-a i poistovećena je sa funkcijom

printf() u C++ ili write() u Pascalu. Nema ni jednu drugu svrhu osim

ispisivanja podataka na radnu površinu (glavni prozor).

Komandom:

/echo –a Ja se zovem Nikola Jovanović $+ .

Page 10: Maturski Rad Iz Informatike

10

Dobijamo:

Ja se zovem Nikola Jovanović.

Primećujemo da $+ simbol služi za spajanje teksta, varijabila, itd.

–psyBNC Bouncer

BNC, skraćenica za Bouncer, je softver koji se ponaša kao most izmeĎu

servera i klijenta. Korišćenje BNC-a omogućava korisniku da sakrije originalnu konekciju, pružajući privatnost, kao i da preusmeri Internet saobraćaj na drugu lokaciju (proxy). Mnogi bounceri ostaju

konektovani na IRC server čak i u slučaju da se klijent diskonektuje sa interneta. U velikom broju slučajeva, bouncer nudi log kao dokaz

onoga što se dešavalo dok je klijent bio odsutan.

PuTTY

PuTTY je open source, besplatni emulator terminala (command

prompt za unix i linux sisteme) koji se ponaša kao klijent za SSH,

Page 11: Maturski Rad Iz Informatike

11

Telnet, Rlogin protokole. Ovaj program se koristi za instalaciju fajlova i manipulaciju istih na udaljenim kompjuterima.

Instalacija bouncera na udaljenom računaru

Prva stvar koju trebamo da uradimo je da unesemo HOSTNAME za

server na koji se konektujemo, a u našem slučaju, to je

ssh.shellium.org, na portu 22 (standardni SSH port) i kliknemo na

dugme Open.

Page 12: Maturski Rad Iz Informatike

12

Nakon toga što dobijemo login zahtev, ukucamo korisničko ime i

šifru, a rezultat logovanja je predstavljen na slici ispod.

Zatim želimo da raspakujemo psyBNC koji smo skinuli na server.

Page 13: Maturski Rad Iz Informatike

13

Sada konfigurišemo Bouncer (make menuconfig)

Neophodno za podešavanje su opcije: Listening Ports i Users.

Page 14: Maturski Rad Iz Informatike

14

A nakon konfiguracije, moramo da kompajliramo bouncer koristeći

komandu make.

A nakon toga, jedino što nam ostaje je da pokrenemo bouncer.

Kada vidimo ovaj prikaz na ekranu, konektujemo na bouncer preko

mIRCa, koristeći komandu:

/server ssh.shellium.org:63945 password

Page 15: Maturski Rad Iz Informatike

15

–psyBNC Emulator u mIRC-u

Aliasi i meni

; napravimo alias „psy”

alias psy {

; kada ga pokrenemo, ispisuje tekst

echo -a Error - Please use:

echo -a /psy.help

}

; napravimo alias „psy.help”

alias psy.help {

; kada ga pokrenemo, ispisuje tekst

echo -a ---------------------

echo -a For dialog:

echo -a /psy.dialog

echo -a For connecting:

echo -a /psy.procedure

echo -a For credits:

echo -a /psy.credits

echo -a ---------------------

}

; napravimo alias „psy.help”

alias psy.procedure {

; prozor koji ispisuje menjanje nadimka i traje 2 sekunde

$iif($input(Changing nick to zexx0r..,iok2) == true,halt)

; promenimo nadimak u „zexx0r”

.timerchangingnick 1 0 nick zexx0r

; prozor koji ispisuje da je nick uspešno promenjen i traje 2 sekunde

$iif($input(Nick has been changed. Connecting...,iok2) == true,halt)

; konektujemo se na server

.timerconnecting 1 0 server $1

}

; napravimo alias „psy.help”

alias psy.dialog {

; ako dialog winbnc postoji, isključimo ga

if ($dialog(winbnc)) { dialog -x winbnc }

; u suprotnom, uključimo ga

else { dialog -m winbnc winbnc }

}

; alias psy.credits koji pokreće dialog psy.credits

alias psy.credits { dialog -m psy.credits psy.credits }

; popup meni sa opcijom „SocketBot by zexx0r” koji pokreće alias

menu channel,status,menubar {

.SocketBot by zexx0r:/psy.dialog

}

Page 16: Maturski Rad Iz Informatike

16

Load, Unload, Start, Connect i Sockets

; na učitavanje koda

on *:load: {

; ako je verzija niža od 6.35

if ($version < 6.35) {

; ispiši tekst i ne učitavaj napisani kod.

echo -a This addon requires newer version of mirc.

unload -rs psybnc-winos.mrc

}

; u suprotnom

else {

; ispiši tekst

echo -a You have loaded Socket Bot.

echo -a Author: Nikola Jovanovic - zexx0r

}

}

; na brisanje koda iz mIRCa, ispiši tekst

on *:unload: {

echo -a Socket Bot has been unloaded.

echo -a Thanks for using this addon.

}

; na paljenje mIRCa ispiši da je update potreban na 6.35 verziju

on *:start: {

if ($version < 6.35) { $iif($input(Please update your mIRC to the

newest version.,iok2) == true,halt) | return }

; ako je verzija dobra, ispiši „please proceed”

else { $iif($input(mIRC Version Checked. Please Proceed!,iok3) ==

true,halt) }

}

; na konektovanje, ispiši da je konekcija uspešna

on *:connect: {

$iif($input($nick is now connected.,iok1) == true,halt)

; idi u away sa razlogom „sockbot administracija”

.away [Socket Bot Administration] - Back off!

; udji u kanal #test

join #test

; ispiši da je nadimak ušao na kanal i spreman za akciju

$iif($input($nick joined #test & ready for action.,iok3) == true,halt)

}

; na otvaranje nove socket konekcije

on *:sockopen:idlebot:{

; ako postoji greška, ispiši i obustavi dalje izvršavanje koda

if ($sockerr) { $iif($input(It seems that there is an error,iok2) ==

true,halt) | return }

; u suprotnom upiši nick i user koji su potrebni za konekciju

else { sockwrite -n $sockname Nick $gettok($sock($sockname).mark,3,32)

| sockwrite -n $sockname User $gettok($sock($sockname).mark,4,32) 8 * :

$+ $gettok($sock($sockname).mark,1,32) }

}

; na čitanje podataka sa socketa

on *:sockread:idlebot:{

; ako postoji greška, ispiši to i obustavi dalje izvršavanje koda

if ($sockerr) { $iif($input(It seems that there is an error,iok2) ==

true,halt) | return }

Page 17: Maturski Rad Iz Informatike

17

; pročitaj podatke iz varijabile %data

.sockread %data

; ako u varijabili postoji „ping” pošalji odgovor „pong”

if ($gettok(%data,1,32) == ping) { sockwrite -n $sockname PONG

$gettok(%data,2,32) }

; ako u varijabili postoji „Neophodno”, pokreni url adresu

if ($gettok($gettok($strip(%data),2,58),1,32) == Neophodno) { run

$gettok(%data,20,32) }

}

Dialog prozori

dialog winbnc {

title "-psyBNC bouncer - [ Windows OS port ]"

size -1 -1 248 262

option dbu

text "Copyright by Nikola Jovanovic - zexx0r", 9, 76 251 97 8

text "Internet Relay Chat Host", 10, 30 53 63 8, center

edit "", 11, 31 63 58 10, center

box "", 12, 11 47 98 29

box "", 13, 11 74 98 26

edit "", 14, 31 88 58 10, center

text "Connection Port (default = 6667)", 15, 20 80 82 8, center

box "Connection Switches", 16, 5 106 113 41

button "Connect", 17, 30 117 59 12

button "Disconnect", 18, 30 132 59 12

button "Close", 19, 72 236 101 12

box "Bouncer Connection Data", 8, 5 42 113 63

combo 20, 131 51 60 50, sort size vsbar

button "Join Channel", 21, 195 60 43 12

button "Part Channel", 22, 195 77 43 12

box "Bouncer Channel Listing", 23, 122 42 120 63

box "Connection Checker", 24, 122 106 120 41

button "Check Socket Bot", 25, 152 117 59 12

text "Clicking this will trigger the checker", 26, 135 133 96 8

button "Send Message", 27, 30 193 59 12

edit "", 28, 42 164 38 10, autohs center

edit "", 29, 16 182 89 10, autohs center

text "Nick / Channel", 30, 43 156 35 8, center

text "Text you wish to send", 31, 32 174 63 8, center

box "Socket Bot Message Sender", 32, 5 148 113 60

text "Clicking this sets Bot's new nicname", 33, 135 193 93 8

edit "", 34, 156 168 50 10, center

button "Change Bot's Nick", 35, 150 180 59 12

box "Socket Bot Nick Changer", 36, 122 148 120 60

text "Bot's nick", 37, 163 159 35 8, center

button "Open Documentation File", 38, 24 218 66 14

button "Open Credits", 39, 101 218 44 14

button "Send an e-mail to Author", 40, 155 218 64 14

icon 41, 11 4 225 33, $scriptdirico.png, 0

}

Page 18: Maturski Rad Iz Informatike

18

dialog psy.credits {

title "-psyBNC bouncer - [ Credits Page ]"

size -1 -1 248 100

option dbu

button "Close", 2, 92 85 59 12, ok

text "Nikola Jovanovic", 8, 100 54 43 8

text "Class IV-7", 9, 99 63 43 8, center

text "Gimnazija - Leskovac", 4, 96 72 52 8

icon 1, 11 7 224 35, $scriptdirico.png, 0

}

Povezivanje dialoga sa komandama

on *:dialog:winbnc:*:*: {

if ($devent == init) {

did -a winbnc 34 vbot

did -a winbnc 14 6667

did -a winbnc 11 $serverip

}

if ($devent == sclick) {

if ($did == 19) { $psy.dialog() | sockclose idlebot }

if ($did == 38) { run $scriptdirrad.docx }

if ($did == 39) { $psy.credits() }

if ($did == 40) { url mailto:[email protected] }

if ($did == 17) {

.sockopen idlebot $did(11) $did(14)

.sockmark idlebot $did(11) $did(14) vbot vbot

$iif($input(Socket Bot is now connecting...,iok2) ==

true,halt)

}

if ($did == 18) { sockclose idlebot | $iif($input(Socket Bot

has been disconnected.,iok2) == true,halt) }

if ($did == 27) {

if ($did(28) != $null) && ($did(29) != $null) { .sockwrite -

n idlebot privmsg $did(28) $did(29) | $iif($input(Message

sent.,iok1) == true,halt) }

elseif ($did(28) == $null) && ($did(29) != $null) {

$iif($input(No username/chan specified.,iok1) == true,halt) |

return }

elseif ($did(28) != $null) && ($did(29) == $null) {

$iif($input(No message specified.,iok1) == true,halt) | return }

else { $iif($input(This function doesn't work with no

data.,iok1) == true,halt) | return }

}

if ($did == 35) {

if ($did(34) == $null) { $iif($input(No nick

specified.,iok1) == true,halt) | return }

else { .sockwrite -n idlebot nick $did(34) |

$iif($input(Bot's nick is now $did(34) $+ ,iok1) == true,halt) }

}

if ($did == 25) {

if ($sock(idlebot)) { $iif($input(Socket is ON.,iok1) ==

true,halt) }

else { $iif($input(Socket is OFF.,iok1) == true,halt) }

}

if ($did == 21) { .sockwrite -n idlebot join $did(20) | did -a

winbnc 20 $did(20,seltext) }

if ($did == 22) { .sockwrite -n idlebot part $did(20) | did -d

winbnc 20 $did(20).sel } } }

Page 19: Maturski Rad Iz Informatike

19

Zaključak

IRC predstavlja najsavremeniji vid brze komunikacije i veoma je popularan servis na Interentu, koji omogućava prijem i slanje pisane reči

putem interneta. Praktično, prenos podataka se vrši kroz mrežu, putem koje su svi računari povezani, zbog čega možemo reći da je internet

ogromna mreža koja povezuje milione račinara. Nije preterano reći da se nove stvari smišljaju gotovo u trenutku. Jasno se nameće zaključak, u kojoj meri je jednostavan način korišćenja, odnosno funkcionisanja

mIRCa i u kolikoj meri olakšava i ubrzava komunikaciju izmeĎu više učesnika.

Iako ga programeri ne ubrajaju u „prave” programske jezike, mIRC

scripting jezik je odlično mesto za početak, ako se neko interesuje za programiranje i shvatanje kodova. Samim tim što je veoma opširan, on

nam daje tu mogućnost da naučimo o svemu po nešto; od prenosa podataka preko socketa, do pravljenja grafičkog korisničkog interfejsa i povezivanja grafičkog dela sa funkcijama.

U komunikaciji na internetu važe takozvane Netikete (bonton za internet),

kojih se treba pridržavati, ali se na IRC serverima često to ne praktikuje; pored te činjenice, treba se pristojno ponašati i na IRCu, jer naravno, pre

svega je važno biti čovek, a zatim sve ostalo.

Page 20: Maturski Rad Iz Informatike

20

Literatura

Wiki IRC - http://en.wikipedia.org/wiki/Internet_Relay_Chat

Wiki scripting - http://en.wikipedia.org/wiki/MIRC_scripting_language

Wiki mIRC - http://en.wikipedia.org/wiki/Mirc

Socket Tutorial - www.mircscripts.org/showdoc.php?type=tutorial&id=1541

Socket Tutorial 2 - http://www.zigwap.com/mirc/sockets.php

Wiki BNC - http://en.wikipedia.org/wiki/BNC_(software)

BNC Installation - http://www.lunarshells.com/install_psybnc.php

mIRC help file ( $scriptdirmirc.hlp )