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
[email protected] 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|Halaman
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|Halaman
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|Halaman
WNetOpenEnum
dimulai oleh fungsi WNetOpenEnum. Memulai enumeration network resources.
Fungsi WNet dibawah ini untuk mendapatkan network provider dan informasi lainnya Fungsi WNet API
Keterangan
Mengembalikan error code yang baru yang WNetGetLastError disetting oleh fungsi WNet , salah satunya dilaporkan oleh network provider. Mengembalikan extended informasi tentang WNetGetNetworkInformation spesifikasi network provider. Mengembalikan nama provider untuk tipe WNetGetProviderName network tertentu. Mengembalikan network provider yang WNetGetResourceInformation memiliki resource, dan mendapatkan informasi mengenai tipe resource. WNetGetResourceParent 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|Halaman
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|Halaman
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|Halaman
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 End Sub
7. Sedangkan code pada saat tombol Kirim diklik adalah sebagai berikut Private Sub KirimBtn_Click() Dim Dim Dim Dim
strMessage As String strPCName As String bResult As Boolean i As Long
If isSelect = False Then MsgBox "Pilih nama Komputer atau message!!", vbExclamation, "Konfirmasi" Exit Sub End If If NetSendMsg.Text = "" Then MsgBox "Isi message "Konfirmasi" Exit Sub End If
yang
akan
domain
yang
dikirim!!",
akan
dikirim
vbExclamation,
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 End Sub
8. Untuk code pada saat tombol Kirim Ambil List User diklik adalah sebagai berikut Private Sub ListBtn_Click()
7|Halaman
If isSelect = False Then MsgBox "Pilih nama Komputer atau domain usernya!!", vbExclamation, "Konfirmasi" Exit Sub End If
yang
akan
diambil
list
Call IsiUserKeListBox End Sub
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 "Konfirmasi" End If
komputer
atau
domain!!",
vbExclamation,
End Sub
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 End Sub
Dan juga pada saat List Box diklik: Private Sub ListBtn_Click() If isSelect = False Then MsgBox "Pilih nama Komputer atau domain usernya!!", vbExclamation, "Konfirmasi" Exit Sub
yang
akan
diambil
list
8|Halaman
End If Call IsiUserKeListBox End Sub
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|Halaman
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