Aplikasi Port Scanning dan Informasi Domain Menggunakan Python
Aplikasi Port Scanning
dan Informasi Domain Menggunakan Python
KATA
PENGANTAR
Puji
dan Syukur kita panjatkan kepada Allah SWT. Salawat dan salam kita kirimkan
kepada junjungan kita, Nabi Muhammad Sallallahu-alaihiwasallam, karena atas
hidayah-Nyalah paper ini dapat diselesaikan. Paper ini penulis sampaikan kepada
pembina mata kuliah Pemrograman Jaringan Bapak M. ACHSAN ISA AL ANSHORI, SKom,MMSI sebagai salah satu
tugas mata kuliah tersebut. Tidak lupa
Penulis ucapkan terima kasih kepada Bapak/Ibu yang telah berjasa mencurahkan
ilmu kepada penulis.
Penulis
memohon kepada Bapak/Ibu dosen khususnya, umumnya para pembaca apabila menemukan
kesalahan atau kekurangan dalam karya tulis ini, baik dari segi bahasanya
maupun isinya, penulis mengharapkan kritik dan saran yang bersifat membangun
kepada semua pembaca demi lebih baiknya.
ABSTRAK
Pada perkembangan zaman saat ini
yang sangat berkembang pesat dan kemajuan tekniloginya menjadikan kita sebagai
penguna teknologi mau tidak mau pasti akan mengikutinya. Teknologi komunikasi
saat ini sangat bermacam macam bentuknya. Komunikasi antar pengguna komputer
dalam suatu jaringan sangat diperlukan. Komunikasi antar komputer tidak hanya
kita menghubungkan kabel, tetapi diperlukan sebuah aplikasi yang dapat
menjalankan client-server. Aplikasi dalam client-server digunakan oleh pengguna
sebagai media berkomunikasi. Dengan adanya aplikasi tersebut pengguna dapat
berkomunikasi satu sama lain. Di dalam aplikasi tersebut berjalan program yang
menjalankan socket. Socket adalah suatu software yang diperuntukan sebagai
pintu komunikasi dalam jaringan. Dalam hal ini penulis mencoba membuat aplikasi
socket programming sebagai pengecekan port yang terbuka. Dengan adanya port
yang terbuka satu sama lain maka komunikasi dapat berjalan sebagaimana
mestinya.
Komunikasi yang terkenal pada zaman
sekarang adalah web. Yang dapat pengguna akses dengan hanya mengetikan
alamatnya. Dalam memanagement web diperlukan aplikasi-aplikasi untuk mengecek
informasi dari suatu alamat. Sehingga penulis menambahkan program untk mengecek
informasi alamat website. Sehingga penulis mencoba membuat aplikasi yang
memiliki dua fungsi dalam satu aplikasi
I.
PENDAHULUAN
Seiring pesatnya perkembangan networking di dunia ternyata juga sangat
mamberi dampak positif yang besat terhadap industri- industri jaringan seperti
yang kita rasakan saat ini dimana banyak aplikasi jaringan yang bermunculan di
internet diantaranya namp, nslookup dan masih banyak lagi. Bagi para pembuat
maupun pengembang aplikasi jaringan tentunya sangan menginginkan aplikasi yang
dihasilkan tidak hanya berjalan secara khusus tetapi juga multi fungsi.
Tujuan penulis membuat aplikasi ini
diantaranya :
·
Dapat berkomunikasi dengan Port yang terbuka
·
Dapat memberikan informasi daris suatu alamat
II.
PEMBAHASAN
Sebelum penulis membuat aplikasi ini. Penulis terlebih dahulu mengetahui
apa itu socket, port, domain.
1.
Socket
Socket adalah sebuah class yang disediakan oleh beberapa
bahasa pemrograman. Dengan socket sebuah aplikasi di suatu komputer dapat
membuka koneksi untuk menghubungi aplikasi lain di komputer lainnya. Tentu saja
aplikasi di komputer yang dihubungi menerima koneksi juga menggunakan socket.
Dengan kata lain socket adalah suatu Class yang digunakan oleh aplikasi untuk
saling berhubungan. Gambar berikut ini menunjukkan bagaimana suatu aplikasi
berhubungan dengan aplikasi lainnya.
Paradigma pada aplikasi jaringan berlaku model client-server.
Aplikasi yang menginisialisasi koneksi, disebut aplikasi client. Sedangkan
aplikasi yang menerima inisialisasi disebut sebagai aplikasi server. Oleh karena
itu, jika kita membangun suatu aplikasi jaringan yang lengkap, maka kita harus
membuat aplikasi client maupun aplikasi server.
2. Socket
Programing
Socket programming adalah bagaimana cara menggunakan socket
API ( Application Socket Programming ), untuk menghubungkan komunikasi antara
proses remote dan local. Sedangkan API adalah sebuah library atau fungsi
windows untuk mengeksekusi sebuah perintah yang ada di dalam semua tampilan
windows , sebagai contoh untuk tampilan desktop ,screen saver ,shutdown computer
dll.
Ada dua jenis protokol yang digunakan untuk berkomunikasi
antar computer, TCP (Transmission Control Protocol)
adalah protokol yang paling umum digunakan di Internet. Alasan
untuk ini adalah karena TCP menawarkan koreksi kesalahan. Ketika
protokol TCP digunakan ada “guaranteed delivery.” yaitu jaminan bahwa
packet akan terkirim. Hal ini disebabkan metode yang
disebut “flow control.” Flow control menentukan kapan data
harus dikirim kembali, dan menghentikan aliran data paket sebelumnya
sampai berhasil ditransfer. Saat paket data
dikirim, tabrakan dapat terjadi. Ketika ini terjadi, client
akan meminta kembali paket dari server
sampai seluruh paket lengkap dan identik dengan aslinya.
UDP (User Datagram Protocol) adalah protokol
yang umum digunakan di Internet. Namun, UDP tidak pernah
digunakan untuk mengirim data penting seperti halaman
web, informasi database, dll. UDP umumnya digunakan
untuk streaming audio dan video. Media streaming seperti
Windows Media audio files (. WMA), Real Player (. RM), dan
lain-lain menggunakan UDP karena
menawarkan kecepatan! Alasan UDP lebih cepat
daripada TCP adalah karena tidak ada bentuk flow control
atau koreksi kesalahan. Data yang dikirim melalui
Internet dipengaruhi oleh tabrakan, dan error akan muncul.
Ingatlah bahwa UDP hanya berkaitan dengan
kecepatan. Ini adalah alasan utama mengapa
media streaming tidak berkualitas tinggi.
3. Port
Dalam protokol jaringan TCP/IP, sebuah port adalah
mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi
koneksi dengan komputer lainnya dan program di dalam jaringan. Port dapat
mengidentifikasikan aplikasi dan layanan yang menggunakan koneksi di dalam
jaringan TCP/IP. Sehingga, port juga mengidentifikasikan sebuah proses tertentu
di mana sebuah server dapat memberikan sebuah layanan kepada klien atau
bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam server.
Port dapat dikenali dengan angka 16-bit (dua byte) yang disebut
dengan Port Number dan
diklasifikasikan dengan jenis protokol transport apa yang digunakan, ke dalam Port TCP dan Port UDP. Karena memiliki angka 16-bit, maka total maksimum jumlah
port untuk setiap protokol transport yang digunakan adalah 65536 buah.
Dilihat dari
penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai
berikut:
- Well-known Port: yang pada awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara port-port yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. Sebagai contoh www atau http ada di port 80, sedangkan mail ada di port 25
- Registered Port: Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port.
- Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan.
4. Domain
Nama domain (domain name) adalah nama unik yang diberikan untuk
mengidentifikasi nama server komputer seperti web server
atau email server di jaringan
komputer ataupun internet. Nama domain berfungsi untuk mempermudah pengguna
di internet pada saat melakukan akses ke server, selain juga dipakai untuk
mengingat nama server yang dikunjungi tanpa harus mengenal deretan angka yang
rumit yang dikenal sebagai alamat IP. Nama domain ini juga dikenal sebagai sebuah
kesatuan dari sebuah situs web seperti contohnya "wikipedia.org".
Nama domain kadang-kadang disebut pula dengan istilah URL, atau alamat website.
Pada awalnya nama domain hanya dapat dituliskan dengan ke-26
abjad Latin, namun saat ini telah dimungkinkan untuk menggunakan abjad asing
dengan Internasionalisasi
nama domain.
5. DNS
DNS adalah sebuah sistem yang menyimpan informasi tentang nama host
ataupun nama
domain dalam bentuk basis data tersebar (distributed database) di dalam
jaringan komputer, misalkan: Internet. DNS menyediakan alamat IP
untuk setiap nama host dan mendata setiap server transmisi surat
(mail exchange server) yang menerima
surel (email) untuk setiap domain.
Menurut browser Google Chrome, DNS adalah layanan jaringan yang menerjemahkan nama situs web
menjadi alamat internet.
DNS menyediakan pelayanan yang cukup penting untuk Internet,
ketika perangkat keras komputer dan jaringan bekerja dengan alamat IP
untuk mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia
pada umumnya lebih memilih untuk menggunakan nama host dan nama domain,
contohnya adalah penunjukan sumber universal (URL) dan alamat surel.
Analogi yang umum digunakan untuk menjelaskan fungsinya adalah DNS bisa
dianggap seperti buku telepon internet dimana saat pengguna mengetikkan
www.indosat.net.id di peramban web maka pengguna akan diarahkan ke alamat IP
124.81.92.144 (IPv4) dan 2001:e00:d:10:3:140::83 (IPv6).
DNS ini merupakan pemetaan dari alamat ip ke domain, dengan
adanya domain ini masyarakat dapat mudah menghapal alamat dari suatu situs di
internet. Banyak layanan yang menyediakan pembelian DNS ini dengan begitu
domain dapat berjalan di internet sehingga tidak ada kesamaan domain
diantaranya.
6. Python
Python adalah
bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang
berfokus pada tingkat keterbacaan kode.
Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan
sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka
standar yang besar serta komprehensif.
Python
mendukung multi paradigma pemrograman, utamanya; namun tidak dibatasi; pada pemrograman berorientasi objek,
pemrograman imperatif, dan pemrograman fungsional. Salah satu fitur yang
tersedia pada python adalah sebagai bahasa pemrograman dinamis yang
dilengkapi dengan manajemen memori otomatis. Seperti halnya pada bahasa
pemrograman dinamis lainnya, python umumnya digunakan sebagai bahasa
skrip meski pada praktiknya penggunaan bahasa ini lebih luas mencakup
konteks pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa
skrip. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat
lunak dan dapat berjalan di berbagai platform sistem
operasi.
7. Implementasi
Setelah penulis mengerti dasar dasar teori dari program yang
penulis buat. Penulis mencoba mengimpelentasikan tujuan penulis menggunakan
bahasa pemrograman python. Bahasa pemrograman python mendukung operasi untuk
socket yang akan dibutuhkan oleh penulis. Penulis membuat program ini
menggunakan sistem operasi Fedora yang berbasis Linux. Berikut adalah program
yang penulis buat.
Fungsi main yang penulis buat dikhususkan untuk
menangani argument yang disertakan ketika menjalankan program yang penulis buat
Fungsi whos yang penulis buat digunakan untuk menerima
balasan saat pengguna aplikasi mengirimkan suatu pesan ke alamat dan port.
Dalam fungsi ini penulis mendeklarasikan suatu socket.
Fungsi wi ini menangani ketika pengguna memasukan argument –d
diikuti dengan domain yang akan dicari informasinya.
Pada Fungsi portscan ini menangani argument –s saat program
dijalankan diikuti dengan argument ip atau domain target.
Berikut penulis sertakan output saat program dijalankan
KESIMPULAN
Sistem port scanning hanya menampilkan port yang terbuka dan
tidak menampilkan aplikasi yang menggunakan port tersebut. Penulis telah
mencoba mengimplementasikan socket untuk dalam program yang menggunakan bahasa
python. Sehingga program dapat melakukan interaksi, sebagai hasilnya mengetahui
port berapa saja yang terbuka dan dapat berinteraksi dengan penyedia layanan
informasi domain untuk mendapatkan informasi domain secara lengkap.
REFERENSI
http://id.wikipedia.org/wiki/Sistem_Penamaan_Domain
http://id.wikipedia.org/wiki/Nama_domain
http://id.wikipedia.org/wiki/Port_(Jaringan_Komputer)
http://10108262.blog.unikom.ac.id/berkenalan-dengan.2zx
https://abbiyudha.wordpress.com/2009/05/02/algoritma-penjadwalan/
http://ardibandi.blogspot.com/2014/01/paper-messaging-application-programming.html
http://id.wikipedia.org/wiki/Python_(bahasa_pemrograman)
Komentar
Posting Komentar