Oleh: sanjisan | Maret 31, 2008

Belajar mIRC Socket Scripting yuk!


Socket adalah software abstrak untuk media input atau output komunikasi. Jalur komunikasi ini memungkinkan untuk mentransfer data melalui port khusus. Singkatnya, socket adalah point terakhir untuk komunikasi antara dua mesin,

Dengan socket, anda bisa konek ke website dan menerima apapun yang anda inginkan dari web tersebut. Di sini, saya akan mengajari anda bagaimana cara menggunakan socket dengan http.

Socket mendapatkan informasi melalui internet, mungkin anda harus menunggu beberapa detik jika situs yang anda konek/akses itu lambat, atau jika koneksi anda yang lambat.
Saya sudah membuat situs sederhana, yang bisa anda gunakan untuk mencoba socket anda.

Ok, mari kita mulai,

Step 1 – mendapatkan kode html

Kita mulai dengan membuat sebuah alias untuk menjalahkan socket.

Code:

alias socket.san {
sockclose socksan
sockopen socksan
sanjiscripts.com 80
}

Maksudnya: pertama, kita tutup socket yang bernama socksan, karena anda tidak bisa membuka socket jika masih terbuka. Berikutnya, kita buka sebuah socked ke allnitecafe.890m.com dengan port 80 (standar http).

Sekarang, kita berpindah ke

Code:

on *:sockopen:socksan:{
sockwrite -n $sockname GET /sock.html HTTP/1.1
sockwrite -n $sockname Host:
sanjiscripts.com $+($crlf,$crlf)
}

Kalimat: on sockopen, berarti: ketika socket terhubung (konek), yaitu setelah anda menggunakan /sockopen. Di sini, kita mengirim beberapa informasi ke http-protocol. Kata: GET, maksudnya pada bagian/halaman mana dari host sanjiscripts.com yang ingin kita kunjungi (hubungi), di sini berarti: /sock.html. HTTP/1.1 adalah versi dari http-protocol. $sockname adalah nama socket. Host: sepertinya tidak berguna, karena anda telah mengisikan host di sockopen kan? Ini bukan kesalahan mIRC, ini adalah bagaimana http protokol bekerja. Anda mengirim lagi Host: sanjiscripts.com dan dua $crlf, itu adalah standar untuk HTTP dan socked anda tidak dapat bekerja tanpanya.

Code:

on *:sockread:socksan:{
var %kode | sockread %kode
echo -a %kode

}

On sockread, membaca setiap baris dalam kode html (protokol akan mengirim beberapa baris juga). var %kode dan sockread %kode akan membaca %kode tanpa menentukannya. Setelah itu, kita lihat %kode itu dengan echo. Jika berhasil, anda akan mendapatkan kode html dari http://sanjiscripts.com/sock.html dalam echo. Inilah yang terlihat ketika anda memasukkan /socket.san:

HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 749
<!-- Ini cuma komentar, kamu nggak bisa lihat ini di Internet Explorer
atau browser lainnya, tapi dengan mIRC bisa -->
<html>
<head>
<title>Halaman buat nge-tes Socket</title>
</head>
<body>
<font color=green face=verdana><h3>Halo Boss</h3></font>
<!--Masukkan komentar di sini ;)-->
<font face=arial color=blue>Silahkan tes socket kamu di sini</font>
<font size=2 face=verdana color=black>Jika kamu melihat teks ini di
mIRC, berarti socket kamu sukses.</font>
</body>

Step 2 – Mendapatkan text yang lebih spesifik dari kode tersebut.

Sekarang, anda sudah mengerti bagaimana cara mendapatkan kode, tapi tentu saja anda ingin mendapatkan teks pada baris tertentu, bukan seluruh kode. Ada sebuah alias yang sangat berguna untuk menghilangkan kode html:

Code:

alias nohtml {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x

}

Jika anda belum mengerti maksudnya, cobalah masukkan dalam mIRC: //echo -a $nohtml(<title>Ini adalah Title</title>) maka anda akan melihat bahwa alias tersebut menghapus <title> dan </title>, yang merupakan kode html.

Pada bagian ini, kita akan konsentrasi pada peristiwa on sockread. Dari hasil yang tadi kita echo, kita masukkan if. Misalnya: <title> ada di dalam variable %code. Ini adalah cara untuk mendapatkan title dari website:

Code:

on *:sockread:socksan:{
var %kode | sockread %kode
if (<title> isin %kode) { echo -a %kode }

}

Sekarang anda mendapatkan: <title>Halaman buat nge-tes Socket</title>, pada echo. Ok, anda telah mendapatkan title website, tapi anda tidak menginginkan kode html-nya kan? Gunakan alias $nohtml.

Code:

on *:sockread:socksan:{
var %kode | sockread %kode
if (<title> isin %kode) { echo -a $nohtml(%kode) }

}

Jika ini sukses, anda akan mendapatkan echo: Halaman buat nge-tes Socket. Dan itulah title dari halaman web percobaan saya.

Seperti yang anda lihat pada kode html web di atas, ada tiga baris teks yang diawali dengan <font. Saya buat demikian agar lebih mudah digunakan dalam socket. Silahkan coba ini:

Code:

on *:sockread:socksan:{
var %kode | sockread %kode
if (<font isin %kode) { echo -a $nohtml(%kode) }

}

Maka anda akan melihat hasilnya dalam mIRC seperti ini:

Halo Boss
Silahkan tes socket kamu di sini
Jika kamu melihat teks ini di mIRC, berarti socket kamu sukses.

Selanjutnya, anda tinggal membuat scripts dalam tutorial ini agar berinteraksi dengan user di mIRC #channel, contoh scriptnya akan saya berikan pada tutorial selanjutnya. Sementara ini dulu, terima kasih telah menyediakan waktu anda untuk membaca tutorial ini. Jika ada yang belum anda pahami, silahkan hubungi saya,

Sanji-san (cedonulfi_at_yahoo_dot_com)


Responses

  1. apik..ajeeb

  2. Mantafff…. Thx atas infonya

  3. //echo -a l $nohtml(Ini adalah Title)

    /echo: insufficient parameters

    kenapa itu yah?

  4. BOS.. minta tolong buatin script bisa ngga???


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: