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

Postingan Populer