Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 8 Series 17, Agustus 2002. Agus Kurniawan agusk@cs.ui.ac.id http://blog.aguskurniawan.net Pendahluan Kita yang sering bergelut dengan dunia komputer dalam jaringan LAN terutama dalam operating sistem Windows maka akan sering memakai Windows Eksplore. Jika komputer kita terhubung dengan jaringan Intranet maka kita akan dapat melihat semua list komputer yang terhubung dalam jaringan intranet tersebut, seperti yang diperlihatkan seperti pada gambar 1. Gambar 1. Aplikasi Windows Explore yang menampilkan list komputer dalam jaringan intranet 1 H a l a m a n
Pada artikel kali ini, kita akan mencoba membuat aplikasi mirip Windows Explore yang menampilkan list semua komputer dalam jaringan intranet dan mengirim message ke komputer (NetSend) serta menampilkan list user account pada komputer tertentu. WNet (Windows Networking) Fungsi WNet (Windows Networking) ini memungkinkan kita mengimplementasi untuk mengakses jaringan intranet dalam lingkungan operasi sistem Windows. Disamping itu, dengan fungsi WNet kita juga menambah atau mengurangi jaringan koneksi serta mendapatkan informasi tentang konfigurasi jaringan intranet yang sedang dipakai. Gambar 2. Sistem jaringan intranet. Pada gambar 2 merupakan gambar heirachy Microsoft Windows NT Server/ Windows 2000 Advance Server yang bisa diwakilkan seperti pada Network Provider #. Aplikasi tidak memerlukan informasi tentang jaringan intranet sebelum bergabung pada salah satu provider #. Seiap Network Provider mempunyai beberapa domain dan tiap domain mempunyai kumpulan server/komputer serta tiap server juga dapat melakukan sharing apa yang dimiliki. Berikut ini beberapa fungsi yang ada dalam WNet 2 H a l a m a n
Fungsi WNet API MultinetGetConnectionPerformance WNetAddConnection WNetAddConnection2 WNetAddConnection3 WNetCancelConnection WNetCancelConnection2 WNetConnectionDialog WNetConnectionDialog1 WNetDisconnectDialog WNetDisconnectDialog1 WNetGetConnection WNetGetUniversalName WNetUseConnection Keterangan Mengembalikan informasi tentang performance dari network resource. Menghubungkan lokal device ke network resource. Menghubungkan lokal device ke network resource. Menghubungkan lokal device ke network resource. Fungsi ini termasuk lebih banyak parameter daripada fungsi WNetAddConnection2. Menggagalkan koneksi jaringan. Menggagalkan koneksi jaringan, menyediakan kemampuan untuk update user profile dengan informasi mengenai persistent connection. Start browsing dialog box untuk konek ke network resources. Start browsing dialog box untuk ke network resources dengan memakai struktur CONNECTDLGSTRUCT Start browsing dialog box untuk disconnecting dari network resources. Starts browsing dialog box untuk disconnecting dari network resources, dengan memakai struktur DISCDLGSTRUCT. Mendapatkan nama dari network resource beserta dengan local device. Memberikan informasi mengenai nama universal dari suatu sumber jaringan Menghubungkan local device ke network resource ; secara otomatis memilih unused local device untuk redirect ke network resource. Sedangkan dibawah ini merupakan enumeration dari WNet: Fungsi WNet API Keterangan WNetCloseEnum Menutup network resource enumeration. WNetEnumResource Melanjutkan enumeration network resources yang 3 H a l a m a n
WNetOpenEnum dimulai oleh fungsi WNetOpenEnum. Memulai enumeration network resources. Fungsi WNet dibawah ini untuk mendapatkan network provider dan informasi lainnya Fungsi WNet API WNetGetLastError WNetGetNetworkInformation WNetGetProviderName WNetGetResourceInformation WNetGetResourceParent Keterangan Mengembalikan error code yang baru yang disetting oleh fungsi WNet, salah satunya dilaporkan oleh network provider. Mengembalikan extended informasi tentang spesifikasi network provider. Mengembalikan nama provider untuk tipe network tertentu. Mengembalikan network provider yang memiliki resource, dan mendapatkan informasi mengenai tipe resource. Mengembalikan parent dari network resource. fungsi WNet ini untuk mendapatkan nama user yang terdapat dalam local device. Fungsi WNet API WNetGetUser Keterangan Mengembalikan nama user yang running yang menciptakan koneksi. Untuk memanfaatkan semua fungsi API dalam WNet maka kita dapat memanfaatkan library NetApi32 dan AdvApi32. Berikut ini cara pemakaiannya: Public Declare Function NetServerEnum Lib "Netapi32.dll" ( vservername As Any, ByVal llevel As Long, vbufptr As Any, lprefmaxlen As Long, lentriesread As Long, ltotalentries As Long, vservertype As Any, ByVal sdomain As String, vresumehandle As Any) As Long Membuat Aplikasi WNet Dengan Visual Basic Untuk memahami tentang fungsi-fungsi dalam WNet ini maka kita akan langsung mempraktekan dan implementasikannya dalam suatu program dalam Visual Basic. 4 H a l a m a n
Aplikasi yang akan kita buat adalah aplikasi yang menampilkan list dari komputerkomputer yang ada dalam jaringan intranet. Berikut ini langkah-langkahnya untuk implementasinya: 1. Jalankan aplikasi Visual Basic 2. Pilikan project Standard EXE (gambar 3), dan tekan tombol OK Gambar 3. Project Baru 3. Pada project, tambahkan komponen sehingga akan muncul seperti gambar 4 dan pilihlah 5 H a l a m a n
Gambar 4. Menambah komponen Common Control 6.0 ke project 4. Buat model GUI untuk project seperti gambar 5. Gambar 5. Bentuk GUI untuk project WNet 5. Tambahkan module dalam project ini dengan nama WNetModule dan source code dapat dilihat pada CD. 6. Klik dua kali tombol Tampilkan dan tambahkan code line sebagai berikut: 6 H a l a m a n
Private Sub TampilkanBtn_Click() Screen.MousePointer = vbhourglass StatusBar1.SimpleText = "Searching..." SERVERTYPE = SV_TYPE_ALL Call FillDomainTree(SV_TYPE_DOMAIN_ENUM, Me.IntranetTree) StatusBar1.SimpleText = "Ready" Screen.MousePointer = vbdefault isselect = False 7. Sedangkan code pada saat tombol Kirim diklik adalah sebagai berikut Private Sub KirimBtn_Click() Dim strmessage As String Dim strpcname As String Dim bresult As Boolean Dim i As Long If isselect = False Then MsgBox "Pilih nama Komputer atau domain yang akan dikirim message!!", vbexclamation, "Konfirmasi" Exit Sub End If If NetSendMsg.Text = "" Then MsgBox "Isi message yang akan dikirim!!", vbexclamation, "Konfirmasi" Exit Sub End If strpcname = Trim(IntranetTree.SelectedItem.Text) strmessage = "net send " & strpcname & " " & NetSendMsg.Text StatusBar1.SimpleText = "Sending Message to: " & strpcname Screen.MousePointer = vbarrowhourglass i = Shell(strMessage) StatusBar1.SimpleText = "Message Send to: " & strpcname Screen.MousePointer = vbdefault 8. Untuk code pada saat tombol Kirim Ambil List User diklik adalah sebagai berikut Private Sub ListBtn_Click() 7 H a l a m a n
If isselect = False Then MsgBox "Pilih nama Komputer atau domain yang akan diambil list usernya!!", vbexclamation, "Konfirmasi" Exit Sub End If Call IsiUserKeListBox Sedangkan code untuk fungsi IsiUserKeListBox sebagai berikut: Public Sub IsiUserKeListBox() Dim i As Integer Dim TotalUser As Long Dim strkomputer As String strkomputer = "\\" & Trim(IntranetTree.SelectedItem.Text) TotalUser = GetUsers(strKomputer) ListUser.Clear For i = 0 To TotalUser - 1 ListUser.AddItem UserInfo(i).Name & " - " & UserInfo(i).Comment Next i If TotalUser = 0 Then MsgBox "Cek Nama komputer atau domain!!", vbexclamation, "Konfirmasi" End If 9. Disamping itu ada beberapa event, antara lain saat TreeView diklik, code-nya sebagai berikut: Private Sub IntranetTree_NodeClick(ByVal Node As MSComctlLib.Node) SendTo.Text = IntranetTree.SelectedItem.Text KompList.Text = IntranetTree.SelectedItem.Text isselect = True Dan juga pada saat List Box diklik: Private Sub ListBtn_Click() If isselect = False Then MsgBox "Pilih nama Komputer atau domain yang akan diambil list usernya!!", vbexclamation, "Konfirmasi" Exit Sub 8 H a l a m a n
End If Call IsiUserKeListBox 10. Simpan project ini dengan nama IntranetProj dan nama form nya adalah IntranetForm 11. Run project ini Uji Coba Langkah untuk mengisi aplikasi ini sangat mudah, berikut ini langkahlangkahnya: 1. Setelah aplikasi telah di-compile dan run 2. Tekan tombol Tampilkan untuk menampilkan semua list komputer yang ada dalam jaringan intranet/lan. Contohnya seperti pada gambar 6. Gambar 6. Hasil Running dan tekan tombol Tampilkan dan tombol Ambil List User 3. Klik salah satu komputer yang akan dikirim message (Netsend) atau untuk mendapatkan nama-nama user yang ada dalam komputer tersebut 4. Untuk mengirim message (Netsend), maka harus dipilih nama komputer yang akan dikirim dan isi message-nya kemudian tekan tombol Kirim 5. Untuk mendapatkan list user, maka harus dipilih nama komputer yang akan diambil list user-nya kemudian tekan tombol Ambil List User. Klik list box untuk detailnya 9 H a l a m a n
Referensi MSDN Library, Windows Networking Agus Kurniawan, Buku Komputer - Pemrograman Jaringan Internet Dengan Visual C++, Elexmedia Komputindo, 2002 10 H a l a m a n