Pendahulan Mengetahui Domain IP End Point Mendeteksi IP Address Mencek Apakah Komputer terhubung dengan Internet...

21 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 1

MODUL 2

IP ADDRESS

SOCKET

ISI HALAMAN INI

Pendahulan ... 2

Mengetahui Domain ... 2

IP End Point ... 4

Mendeteksi IP Address ... 5

Mencek Apakah Komputer terhubung dengan Internet ... 7

URL Address ... 9

Ipv6 ... 12

Instalasi ... 12

Pengujian IPV6 ... 12

Aktifkan Ipv6 Framework ... 15

Pemrograman VB.NET ... 16

(2)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 2 PENDAHULAN

• Memahami bagaimana cara mendapatkan IP Address di komputer yang sedang digunakan untuk ditampilkan diaplikasi. Bermanfaat ketika kita ingin membuat aplikasi server, dengan tahap awal mendeteksi IP yang digunakan sehingga kita tidak selalu menggunakan alamat localhost atau 127.0.0.1 untuk initial IP Address.

• Mendapatkan informasi versi IP yang digunakan (IP versi 4 atau IP Versi 6), alamat nama domain dengan mengetahui terlebih dahulu alamat IP, mengetahu port yang aktif dan informasi penting lainnya dalam penggunaan IP untuk aplikasi socket. • Mengetahui alamat IP terlebih dahulu selanjutnya ingin diketahui alamat domain.

Mengetahui alamat fisikal kartu jaringan. Ilustrasi domain yang umum kita ketahui yaitu facebook.com, fst.uinjkt.ac.id/andrew dan lainnya.

• Apakah komputer kita dapat terhubung dengan jaringan (internet) yang ditampilkan dalam aplikasi .

• Memahami dan menerapkan Ipv6 dengan tahapan cara instalasi Ipv6 dan mengaktikan dalam program aplikasi dengan protokol tcp server ipv6 dan tcp client ipv6 client.

MENGETAHUI DOMAIN

Percobaan aplikasi pertama yang dilakukan, yaitu kita mengetahui nama IP Address tapi kita tidak mengetahui nama domain. Bahasa pemrograman yang digunakan dari awal bab sampai akhir bab yaitu VB,NET, kita dapat gunakan VB.NET 2005, VB.NET 2008 dan VB.NET 2010 yang sudah diuji dan dapat diterapkan. Untuk form desain dapat anda lihat pada gambar, gambar tersebut menunjukan pula hasil dari program yang dijalankan.

Properti yang digunakan yaitu: • Textbox

• Button • Listbox

(3)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 3 Library yang digunakan untuk pengenalan IP Address dan pemrograman socket pada khususnya pada VB.Net yaitu:

• Imports System

• Imports System.Data • Imports System.Net

• Imports System.Net.Sockets

Proses yang dilakukan ketikan user menginput sebuah alamat IP dan klik pada button, maka akan ditampilkan di list box. Kode program dapat dilihat pada kode program dapatkan domain.

Kode Program Dapatkan Domain Imports System

Imports System.Data Imports System.Net

Imports System.Net.Sockets Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim CpIP As IPHostEntry Dim a As String

CpIP = Dns.GetHostByAddress(TextBox1.Text)

a = "IP :" + TextBox1.Text + " Nama hostnya adalah : " + CpIP.HostName

(4)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 4 ListBox1.Items.Add(a)

End Sub End Class

IP END POINT

Ip End Point dimaksudkan IP yang terhubung kesebuah alamat server, atau analogi lain IP dari client yang masuk ke IP Server. Karena kita belum masuk ke aplikasi server, maka IP yang digunakan menggunakan alamat localhost yaitu 127.0.0.1 dan port yang digunakan dapat bebas, dalam hal ini 12345.

Untuk desain, sama seperti program diatas, tambahkan button dengan text =”Ip End Point”. Supaya nanti hasilnya tidak tercampur dengan program pertama,maka dalam program tersebut list box kita clearkan dengan menambahkan baris

ListBox1.Items.Clear()

Desain anda dapat lihat pada gambar. Dan tambahan program dapat anda lihat pada button2.

(5)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 5 Kode program digabungkan dengan program diatas sebelumnya, karena masih dalam satu form.

Kode Program Ip End Point Imports System

Imports System.Data Imports System.Net

Imports System.Net.Sockets Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim CpIP As IPHostEntry Dim a As String

CpIP = Dns.GetHostByAddress(TextBox1.Text)

a = "IP :" + TextBox1.Text + " Nama hostnya adalah : " + CpIP.HostName

ListBox1.Items.Add(a) End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim ipAddr As System.Net.IPAddress Dim ipEndPoint As System.Net.IPEndPoint Dim socketAddr As System.Net.SocketAddress ListBox1.Items.Clear()

Try

ipAddr = IPAddress.Parse("127.0.0.1")

ipEndPoint = New System.Net.IPEndPoint(ipAddr, 12345) socketAddr = ipEndPoint.Serialize()

ListBox1.Items.Add("Address Family: " & ipEndPoint.AdressFamily.ToString)

ListBox1.Items.Add("IP:Port: " & ipEndPoint.Address.ToString & ":" & ipEndPoint.Port.ToString)

ListBox1.Items.Add("SocketAddress : " & socketAddr.ToString()) Catch ex As Exception ListBox1.Items.Add(ex.StackTrace.ToString) End Try End Sub End Class MENDETEKSI IP ADDRESS

(6)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 6 Selanjutnya mendeteksi IP Address di komputer kita terkadang IP Address yang kita set selalu berubah hal ini akan menjadi masalah kalau kita mendefiniskan dalam program IP yang digunakan bersifat statis.

Dalam program ini didefinisikan pula mengetahui nama ip dari nama sebuah domain, dalam hal ini user mengetikan nama domain di nama web jika anda lihat pada desain program. Ketika diklik maka program akan menampikan IP Address yang dimiliki oleh facebook sebagai contoh pada program. Anda dapat lihat hasilnya adalah 66.220.158.11

Silahkan anda buka firefox atau browser internet anda dengan 66.220.158.11, dan lihat halaman web apa yang akan tampil.

Jika komputer anda memiliki alamat IP versi 6, maka alamat versi 6 anda akan tampil, jika anda ingin memiliki IP versi 6, dalam modul ini akan dijelaskan pula set IP versi 6. Tampilan pada desain dapat anda lihat pada gambar.

Properti yang digunakan dalam form tersebut yaitu: • Label sebanyak 4 buah

• Textbox sebanyak 4 buah • Button

Import yang digunakan agar VB net mengenali program yang kita ketikan yaitu: • Imports System.Net

• Imports System.Net.Sockets Untuk pendeteksian IP Address dari domain

(7)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 7 Dim hostname2 As IPHostEntry = Dns.GetHostByName(TextBox1.Text) menyimpan nama domain web.

Dan alamat domain, misalkan facebook ditampilkan di TextBox2.Text = ip2(0).ToString()

Ip Komputer sendiri ditampilkan di TextBox3.Text = ip(0).ToString() Untuk alamat mac address ditampilkan di

TextBox4.Text = curAdd.ToString()

Kode lengkap nya dapat anda lihat di Kode program mendeteksi IP Address Kode Program Mendeteksi IP Address Imports System.Net

Imports System.Net.Sockets Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim hostname2 As IPHostEntry =

Dns.GetHostByName(TextBox1.Text) Dim hostname As IPHostEntry =

Dns.GetHostEntry(System.Environment.MachineName) Dim ip As IPAddress() = hostname.AddressList Dim ip2 As IPAddress() = hostname2.AddressList TextBox3.Text = ip(0).ToString()

TextBox2.Text = ip2(0).ToString() Dim curAdd As IPAddress

For Each curAdd In hostname.AddressList '=== Retrieve only IPv4 ====

If curAdd.AddressFamily = AddressFamily.InterNetwork Then TextBox4.Text = curAdd.ToString() End If Next curAdd End Sub End Class

MENCEK APAKAH KOMPUTER TERHUBUNG DENGAN INTERNET

Terkadang kita ingin memastikan komputer yang kita gunakan apakah dapat terhubung internet atau tidak, umumnya kita gunakan ping detik.com. dengan asumsi jika mendapatkan reply maka kita terhubung ke internet. Di sini kita dapat pula menguji apakah komputer kita dapat terhubung?.

(8)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 8 Untuk aplikasi ini kita tidak menggunakan form baru, dari yang sebelumnya cukup menambahkan sebuah label, seperti pada gambar. Pada gambar dibawah, merupakan hasil pengujian program.

Dengan menambahkan program

If InternetGetConnectedState(Out, 0) = True Then

maka kita tampilkan dengan kondisi benar atau salah jika benar koneksi terhubung jika tidak koneksi. Anda tidak perlu membuat ulang, silahkan dihat program dibawah ini

Kode Program Deteksi Internet Imports System.Net

Imports System.Net.Sockets

Imports System.Runtime.InteropServices Public Class Form2

Private Declare Function InternetGetConnectedState Lib "wininet" (ByRef conn As Long, ByVal val As Long) As Boolean

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim hostname2 As IPHostEntry = Dns.GetHostByName(TextBox1.Text)

Dim hostname As IPHostEntry =

Dns.GetHostEntry(System.Environment.MachineName) Dim ip As IPAddress() = hostname.AddressList Dim ip2 As IPAddress() = hostname2.AddressList TextBox3.Text = ip(0).ToString()

(9)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 9 TextBox2.Text = ip2(0).ToString()

Dim curAdd As IPAddress

For Each curAdd In hostname.AddressList '=== Retrieve only IPv4 ====

If curAdd.AddressFamily = AddressFamily.InterNetwork Then

TextBox4.Text = curAdd.ToString() End If

Next curAdd

Dim Out As Integer

If InternetGetConnectedState(Out, 0) = True Then Label5.Text = "Terkoneksi Internet"

Else

Label5.Text = "Tidak terhubung Internet" End If

End Sub End Class URL ADDRESS

Kali ini bukan IP Address, akan tetapi link url yang biasa kita ketikan di internet, kita ingin mengetahui informasi apa saya yang dapat kita gali url tersebut. Dalam hal ini yang dapat kita ekspose adalah:

• Nama lokasi web • Port yang digunakan • Query jika menggunakan. • Tipe IP yang digunakan

Properti yang digunakan yaitu: • Textbox

• Button • Listbox

Modul yang digunakan yaitu: • Imports System.Net

• Imports System.Net.Sockets

Desain dapat anda lihat pada gambar dan kode program dapat and lihat pula dihalaman selanjutnya

(10)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 10 Silahkan dapat dilanjutkan dengan mengetikan program dibawah ini

Kode Program URL

Imports System.Net

Imports System.Net.Sockets Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim aUri As New Uri(TextBox1.Text) ListBox1.Items.Clear()

ListBox1.Items.Add("Absolute Url : " + aUri.AbsoluteUri) ListBox1.Items.Add("Host : " + aUri.Host)

ListBox1.Items.Add("Scheme : " + aUri.Scheme) ListBox1.Items.Add("Port : " + aUri.Port.ToString)

ListBox1.Items.Add("Absolute Path : " + aUri.AbsolutePath) ListBox1.Items.Add("Query : " + aUri.Query)

ListBox1.Items.Add("User Infor : " + aUri.UserInfo) Dim a, b As String

b = TextBox1.Text

a = b.Replace("http://", "") Select Case aUri.CheckHostName(a) Case UriHostNameType.Basic

ListBox1.Items.Add("Hostname: Basic") Case UriHostNameType.Dns

ListBox1.Items.Add("Hostname: Dns") Case UriHostNameType.IPv4

ListBox1.Items.Add("Hostname : IPv4") Case UriHostNameType.IPv6

(11)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 11 Case UriHostNameType.Unknown

ListBox1.Items.Add("Hostname : Unknown") End Select End Sub End Class Untuk query: • http://www.java2s.com/index.htm?key=value • http://fst.uinjkt.ac.id • http://fst.uinjkt.ac.id/andrew • http://gurahjakarta.blogdetik.com silahkan coba yang lainnya.

(12)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 12 IPV6

Pada modul ini akan diuji, membuat aplikasi TCP Server dengan Ipv6. Sebelum ke arah pemrograman VB. NET kita pastikan untuk instalasi IPV6 di komputer kita, dalam hal ini pengujian saya lakukan di sistem operasi windows 7.

INSTALASI

PENGUJIAN IPV6

Setelah dilakukan instalasi kita uji komputer kita dengan mengecek IP Address yang telah di set secara otomatis. Kita dapat menguji di command prompt dengan mengetikan netsh, detail dapat dilihat di bawah.

Hasil Command Prompt Netsh C:\Users\andrew>netsh interface ipv6 show address

Interface 1: Loopback Pseudo-Interface 1

Addr Type DAD State Valid Life Pref. Life Address --- --- --- --- ---

(13)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 13 Other Preferred infinite infinite ::1

Interface 15: Wireless Network Connection Addr Type DAD State Valid Life Pref. Life Address --- --- --- --- ---

Other Deprecated infinite infinite fe80::3816:7756:d33:a936%15 Interface 11: Local Area Connection

Addr Type DAD State Valid Life Pref. Life Address --- --- --- --- ---

Other Deprecated infinite infinite fe80::dd:65d2:5457:250f%11 Interface 13: Teredo Tunneling Pseudo-Interface

Addr Type DAD State Valid Life Pref. Life Address --- --- --- --- ---

Other Deprecated infinite infinite fe80::100:7f:fffe%13

C:\Users\andrew>

Dari hasil diatas, terdapat 3 jaringan yang dapat dilihat pada tabel, hasil wireless dan local area connection, selalu berubah dan bersifat dinamis. Namun standard yang sama yaitu dimulai dengan fe80

No Nama Interface Ipv6

1 Loopback/localhost ::1 2 Wireless Network

Connection

fe80::100:7f:fffe%13

3 Local Area Connection fe80::dd:65d2:5457:250f%11

Untuk meyakinkan, kita dapat uji dengan mengetikan IP di diatas,anda dapat sesuaikan dengan hasil di komputer masing-masing.

Uji local host output Command Prompt C:\Users\andrew>ping ::1

Pinging ::1 with 32 bytes of data: Reply from ::1: time<1ms

Reply from ::1: time<1ms Reply from ::1: time<1ms Reply from ::1: time<1ms

(14)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 14 Ping statistics for ::1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\Users\andrew>

Uji lokal IP Wireless Output Command Prompt C:\Users\Andrew>ping fe80::100:7f:fffe%13

Pinging fe80::100:7f:fffe%13 with 32 bytes of data: Reply from fe80::100:7f:fffe%13: time<1ms

Reply from fe80::100:7f:fffe%13: time<1ms Reply from fe80::100:7f:fffe%13: time<1ms Reply from fe80::100:7f:fffe%13: time<1ms Ping statistics for fe80::100:7f:fffe%13:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\Users\Andrew>tracert fe80::100:7f:fffe%13

Untuk Ipv6 kita dapat lakukan tracert, sama dengan ipv4, pengguaan tracert. Contoh output: Output Command Prompt Tracert

C:\Users\Andrew>tracert fe80::100:7f:fffe%13

Tracing route to fe80::100:7f:fffe%13 over a maximum of 30 hops 1 <1 ms <1 ms <1 ms fe80::100:7f:fffe

Trace complete.

(15)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 15 AKTIFKAN IPV6 FRAMEWORK

Selanjutnya kita aktifkan Ipversi6. Secara default Framework versi 2 sudah mendukung Ipv6, dalam arti secara pemrograman sudah didukung menurut msdn versi windows.

Namun adakalanya memang tidak diaktifkan. ☺

Cara untuk mengaktifkan kita masuk ke machine.config yang berada di lokasi C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

Karena secara default pula, file tersebut di proteksi sehingga kita tidak dapat edit, maka ubah properti file machine.config dengan cara:

• Klik kanan file tersebut

• Pilih security

• Pilih user (dalam hal ini user penulis adalah Lenovo)

• Pilih edit dan centang semua hak akses seperti pada gambar.

(16)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 16 Anda tambahkan baris ini, kemudian kita simpan.dengan ini, VB.Net dapat mendukung Ipv6

Tambahan baris untuk machine.config <system.net> <settings> <ipv6 enabled="true" /> </settings> </system.net> PEMROGRAMAN VB.NET

Selanjutnya, kita lakukan pemrograman VB.NET kita buat aplikasi Ipv6Server dan Ipv6Client.

Dibawah ini desain dari Ipv6. Properti yang digunakan:

• Label • Listbox • Button

(17)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 17 Jika anda lihat Ipv6server merupakan nama form, anda bebas mengubah nama form. Import yang diperlukan dalam program ini yaitu:

• Imports System.Net

• Imports System.Net.Sockets • Imports System.Threading • Imports System.Text Logika program;

• Port didefinisikan terlebih dahulu di Load (saat komputer dijalankan dengan nilai 9999 (anda bebas mengubah)

• Saat form load dijalankan, maka TCP Ipversi 6 diaktifkan pula sesuai dengan baris thdListener.Start()

• Fungsi listener tersebut merupakan sebuah fungsi • Setiap ada pesan dari client. Dengan baris

bytes = clientSocket.Receive(RecvBytes)

a = Encoding.ASCII.GetString(RecvBytes) UpdateLblStatusThreadSafe(a)

Maka akan ditampilkan di text box.

• Untuk lebih ringkas, maka button ketika diklik akan memanggil form client, dalam hal ini penulis menamakan clientipv6 dan pemanggilan dengan clientipv6.Show(). Sintak ini akan benar jika anda sudah membuat form client untuk ipversi 6. Jika anda belum buat maka baris tersebut tidak dikenal

Kode Program IPVersi 6 Server Imports System.Net

Imports System.Net.Sockets

Imports System.Threading

Imports System.Text

Public Class IPv6server

Public Shared port As Integer

Private Delegate Sub updateLblStatus_dlgt(ByVal tempStr As String) Private Sub IPv6server_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load port = 9999

Dim thdListener As Thread = New Thread( _ New ThreadStart(AddressOf listener))

thdListener.Start() End Sub

Public Sub listener()

(18)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 18 Dim a As String

Dim clientSocket As Socket

Dim ipepLocal As IPEndPoint = New IPEndPoint(IPAddress.IPv6Any, port)

Dim RecvBytes() As Byte = New Byte(Byte.MaxValue) {} Dim bytes As Int32

If (Not Socket.SupportsIPv6) Then

MessageBox.Show("Cannot support IPv6") Return

End If

While True

sckListener = New Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp) sckListener.Bind(ipepLocal) sckListener.Listen(0) clientSocket = sckListener.Accept() bytes = clientSocket.Receive(RecvBytes) a = Encoding.ASCII.GetString(RecvBytes) UpdateLblStatusThreadSafe(a) clientSocket.Close() sckListener.Close() End While End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click clientipv6.Show()

End Sub

Private Sub UpdateLblStatusThreadSafe(ByVal tempStr As String) Dim updateLblStatus_obj As updateLblStatus_dlgt

If ListBox1.InvokeRequired Then

updateLblStatus_obj = New updateLblStatus_dlgt(AddressOf

UpdateLblStatusThreadSafe)

If Not updateLblStatus_obj Is Nothing Then

ListBox1.Invoke(updateLblStatus_obj, tempStr) End If Else Call UpdateLblStatus(tempStr) End If End Sub

Private Sub UpdateLblStatus(ByVal tempStr As String) ListBox1.Items.Add(tempStr)

End Sub End Class

(19)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 19 IPVERSI 6 CLIENT

Langsung saja, form desain dapat lihat pada gambar, dan properti yang diperlukan yaitu: • Label : 2buah

• Text box : 2 buah • button

dan import yang digunakan: • Imports System.Net

• Imports System.Net.Sockets • Imports System.Text

Proses algoritma ini:

• Form client ini akan show, ketika dari form server ip versi 6 mengklik button.

• Port sudah didefinisikan oleh program yaitu 9999, dengan form load, saat aplikasi dijalankan

• User input alamat versi 6 server yang dapat dilihat diawal. • User input pesan

(20)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 20

Kode Program Ipversi 6 Client Imports System.Net

Imports System.Net.Sockets

Imports System.Text

Public Class clientipv6

Public Shared port As Integer

Private Sub clientipv6_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load port = 9999

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click Dim msg() As Byte

Dim a As String

If Not Socket.SupportsIPv6 Then

MessageBox.Show("Cannot support IPv6") Return

End If

Dim ipAddrv6 As IPAddress = IPAddress.Parse(TextBox1.Text) Dim ipEPv6 As IPEndPoint = New IPEndPoint(ipAddrv6, port) Dim ipv6Socket As Socket

ipv6Socket = New Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp)

ipv6Socket.Connect(ipEPv6)

a = "IP: " + TextBox1.Text + " pesan:" + TextBox2.Text msg = Encoding.ASCII.GetBytes(a)

ipv6Socket.Send(msg) ipv6Socket.Close() End Sub

(21)

Andrew fiade pemrograman jaringan – andrew_fiade@uinjkt.ac.id halaman 21 Berikut contoh tampilan output.

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :