获取局域网计算机名称和IP.doc_第1页
获取局域网计算机名称和IP.doc_第2页
获取局域网计算机名称和IP.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实例442 获取局域网计算机名称和IP摘要:软件工程师典藏Visual Basic程序开发范例宝典一书所选实例覆盖了开发中的热点问题和关键问题。全书按实际应用进行分类,可以使读者在短时间内掌握更多有用的技术,快速提高编程水平。本文介绍了获取局域网计算机名称和IP。15.2 局域网控制与管理局域网的管理是局域网编程中不可缺少的组成部分。网络管理者需要实时掌握局域网内部计算机的连接状态,局域网管理者也必须利用监测程序监测局域网内部所有的计算机。同时,为保证局域网的稳定,监测程序又不能占用过多的系统资源。本小节将介绍在局域网中如何实现获取局域网计算机名称和IP以及如何监控局域网上的计算机和用户信息。实例442 获取局域网计算机名称和IP实例说明 在本程序运行时,检索整个局域网,将局域网中的计算机显示在ListBox控件中,当用户单击ListBox控件中的计算机名时,右边的文本框就可以显示该计算机的机器名和对应的IP地址。其实现效果如图15.6所示。技术要点 本实例的实现主要是通过使用WNetOpenEnum函数获得所有网络资源的信息过程,使用WNetEnumResource函数可以列出所有网络信息。使用WNetCloseEnum函数结束列举网络资源的过程。利用自定义函数GetIPAddress,获得所选择的计算机的IP地址。其中,全部的程序代码参见本书附带光盘。实现过程 (1)新建一个标准工程,创建一个新窗体,默认名为Form1。(2)在窗体上添加两个Frame控件 ,设置“名称”属性分别为Frame1和Frame2。(3)在Frame1控件上添加一个ListBox控件 ,用于显示局域网络中的计算机名。(4)在Frame2控件上添加两个Label控件 ,两个TextBox控件 ,分别命名为TxtCmpName和TxtIp,分别用于显示计算机名和该计算机的IP地址。(5)在窗体上添加一个Image控件 ,用于显示图片信息。设置其Picture属性。(6)主要程序代码。Private Sub Form_Load()On Error Resume NextConst MAX_RESOURCES = 256Const NOT_A_CONTAINER = -1Dim bFirstTime As BooleanDim lReturn As LongDim hEnum As LongDim lCount As LongDim lMin As LongDim lLength As LongDim l As LongDim lBufferSize As LongDim lLastIndex As LongDim uNetApi(0 To MAX_RESOURCES) As NETRESOURCE_BUFDim uNet() As NETRESOURCEbFirstTime = TrueDoIf bFirstTime ThenlReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_ALL, ByVal 0&, hEnum)bFirstTime = FalseElseIf uNet(lLastIndex).dwUsage And RESOURCEUSAGE_CONTAINER ThenlReturn = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_ALL, uNet(lLastIndex), hEnum)ElselReturn = NOT_A_CONTAINERhEnum = 0End IflLastIndex = lLastIndex + 1End If If lReturn = NO_ERROR ThenlCount = RESOURCE_ENUM_ALLDolBufferSize = UBound(uNetApi) * Len(uNetApi(0) / 2lReturn = WNetEnumResource(hEnum, lCount, uNetApi(0), lBufferSize)If lCount 0 ThenReDim Preserve uNet(0 To lMin + lCount - 1) As NETRESOURCEFor l = 0 To lCount - 1uNet(lMin + l).dwScope = uNetApi(l).dwScopeuNet(lMin + l).dwType = uNetApi(l).dwTypeuNet(lMin + l).dwDisplayType = uNetApi(l).dwDisplayTypeuNet(lMin + l).dwUsage = uNetApi(l).dwUsageIf uNetApi(l).pLocalName ThenlLength = lstrlen(uNetApi(l).pLocalName)uNet(lMin + l).sLocalName = Space$(lLength)CopyMem ByVal uNet(lMin + l).sLocalName, ByVal uNetApi(l).pLocalName, lLengthEnd If If uNetApi(l).pRemoteName ThenlLength = lstrlen(uNetApi(l).pRemoteName)uNet(lMin + l).sRemoteName = Space$(lLength)CopyMem ByVal uNet(lMin + l).sRemoteName, ByVal uNetApi(l).pRemoteName, lLengthEnd If Next lEnd IflMin = lMin + lCountLoop While lReturn = ERROR_MORE_DATAEnd IfIf hEnum Then l = WNetCloseEnum(hEnum)Loop While lLastIndex 0 ThenFor l = 0 To UBound(uNet)If uNet(l).dwDisplayType =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论