CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

如何用vb编写一个扫描ip和机器名的程序?

楼主WiseNeuro(春之舞)2005-01-09 00:21:17 在 VB / 网络编程 提问

想编写个扫描ip和机器名的程序,不知该怎样做。请高手赐教。 问题点数:100、回复次数:4Top

1 楼cso(无聊中...)回复于 2005-01-09 03:38:06 得分 33

http://www.5ivb.net/down/29/5ivb_1227.asp  
  http://www.5ivb.net/down/18/5ivb_187.asp  
  http://www.5ivb.net/down/18/5ivb_189.aspTop

2 楼tztz520(午夜逛街)回复于 2005-01-09 09:59:11 得分 33

http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=83770Top

3 楼pcwak()回复于 2005-01-09 10:13:00 得分 34

加个TreeView1  
   
  Option   Explicit  
   
  Private   Const   RESOURCE_CONNECTED   As   Long   =   &H1&  
  Private   Const   RESOURCE_GLOBALNET   As   Long   =   &H2&  
  Private   Const   RESOURCE_REMEMBERED   As   Long   =   &H3&  
   
  Private   Const   RESOURCEDISPLAYTYPE_DIRECTORY&   =   &H9  
  Private   Const   RESOURCEDISPLAYTYPE_DOMAIN&   =   &H1  
  Private   Const   RESOURCEDISPLAYTYPE_FILE&   =   &H4  
  Private   Const   RESOURCEDISPLAYTYPE_GENERIC&   =   &H0  
  Private   Const   RESOURCEDISPLAYTYPE_GROUP&   =   &H5  
  Private   Const   RESOURCEDISPLAYTYPE_NETWORK&   =   &H6  
  Private   Const   RESOURCEDISPLAYTYPE_ROOT&   =   &H7  
  Private   Const   RESOURCEDISPLAYTYPE_SERVER&   =   &H2  
  Private   Const   RESOURCEDISPLAYTYPE_SHARE&   =   &H3  
  Private   Const   RESOURCEDISPLAYTYPE_SHAREADMIN&   =   &H8  
  Private   Const   RESOURCETYPE_ANY   As   Long   =   &H0&  
  Private   Const   RESOURCETYPE_DISK   As   Long   =   &H1&  
  Private   Const   RESOURCETYPE_PRINT   As   Long   =   &H2&  
  Private   Const   RESOURCETYPE_UNKNOWN   As   Long   =   &HFFFF&  
  Private   Const   RESOURCEUSAGE_ALL   As   Long   =   &H0&  
  Private   Const   RESOURCEUSAGE_CONNECTABLE   As   Long   =   &H1&  
  Private   Const   RESOURCEUSAGE_CONTAINER   As   Long   =   &H2&  
  Private   Const   RESOURCEUSAGE_RESERVED   As   Long   =   &H80000000  
  Private   Const   NO_ERROR   =   0  
  Private   Const   ERROR_MORE_DATA   =   234   'L         //   dderror  
  Private   Const   RESOURCE_ENUM_ALL   As   Long   =   &HFFFF  
   
  Private   Type   NETRESOURCE  
          dwScope   As   Long  
          dwType   As   Long  
          dwDisplayType   As   Long  
          dwUsage   As   Long  
          pLocalName   As   Long  
          pRemoteName   As   Long  
          pComment   As   Long  
          pProvider   As   Long  
  End   Type  
   
  Private   Type   NETRESOURCE_REAL  
          dwScope   As   Long  
          dwType   As   Long  
          dwDisplayType   As   Long  
          dwUsage   As   Long  
          sLocalName   As   String  
          sRemoteName   As   String  
          sComment   As   String  
          sProvider   As   String  
  End   Type  
   
  Private   Declare   Function   WNetAddConnection2   Lib   "mpr.dll"   Alias   "WNetAddConnection2A"   (lpNetResource   As   NETRESOURCE,   ByVal   lpPassword   As   String,   ByVal   lpUserName   As   String,   ByVal   dwFlags   As   Long)   As   Long  
  Private   Declare   Function   WNetOpenEnum   Lib   "mpr.dll"   Alias   "WNetOpenEnumA"   (ByVal   dwScope   As   Long,   ByVal   dwType   As   Long,   ByVal   dwUsage   As   Long,   lpNetResource   As   Any,   lphEnum   As   Long)   As   Long  
  Private   Declare   Function   WNetEnumResource   Lib   "mpr.dll"   Alias   "WNetEnumResourceA"   (ByVal   hEnum   As   Long,   lpcCount   As   Long,   lpBuffer   As   NETRESOURCE,   lpBufferSize   As   Long)   As   Long  
  Private   Declare   Function   WNetCloseEnum   Lib   "mpr.dll"   (ByVal   hEnum   As   Long)   As   Long  
  Private   Declare   Function   VarPtrAny   Lib   "vb40032.dll"   Alias   "VarPtr"   (lpObject   As   Any)   As   Long  
  Private   Declare   Sub   CopyMem   Lib   "kernel32"   Alias   "RtlMoveMemory"   (lpTo   As   Any,   lpFrom   As   Any,   ByVal   lLen   As   Long)  
  Private   Declare   Sub   CopyMemByPtr   Lib   "kernel32"   Alias   "RtlMoveMemory"   (ByVal   lpTo   As   Long,   ByVal   lpFrom   As   Long,   ByVal   lLen   As   Long)  
  Private   Declare   Function   lstrcpy   Lib   "kernel32"   Alias   "lstrcpyA"   (ByVal   lpString1   As   String,   ByVal   lpString2   As   Any)   As   Long  
  Private   Declare   Function   lstrlen   Lib   "kernel32"   Alias   "lstrlenA"   (ByVal   lpString   As   Any)   As   Long  
   
  Sub   GetLocalInfo()  
  Dim   nodX   As   Node  
   
          Const   MAX_RESOURCES   =   256  
          Const   NOT_A_CONTAINER   =   -1  
   
          Dim   bFirstTime   As   Boolean  
          Dim   lReturn   As   Long  
          Dim   hEnum   As   Long  
          Dim   lCount   As   Long  
          Dim   lMin   As   Long  
          Dim   lLength   As   Long  
          Dim   l   As   Long  
          Dim   lBufferSize   As   Long  
          Dim   lLastIndex   As   Long  
          Dim   uNetApi(0   To   MAX_RESOURCES)   As   NETRESOURCE  
          Dim   uNet()   As   NETRESOURCE_REAL  
          bFirstTime   =   True  
          Do  
                  If   bFirstTime   Then  
                          lReturn   =   WNetOpenEnum(RESOURCE_GLOBALNET,   RESOURCETYPE_ANY,   RESOURCEUSAGE_ALL,   ByVal   0&,   hEnum)  
                          bFirstTime   =   False  
                  Else  
                          If   uNet(lLastIndex).dwUsage   And   RESOURCEUSAGE_CONTAINER   Then  
                                  lReturn   =   WNetOpenEnum(RESOURCE_GLOBALNET,   RESOURCETYPE_ANY,   RESOURCEUSAGE_ALL,   uNet(lLastIndex),   hEnum)  
                          Else  
                                  lReturn   =   NOT_A_CONTAINER  
                                  hEnum   =   0  
                          End   If  
                          lLastIndex   =   lLastIndex   +   1  
                  End   If  
                  If   lReturn   =   NO_ERROR   Then  
                          lCount   =   RESOURCE_ENUM_ALL  
                          Do  
                                  lBufferSize   =   UBound(uNetApi)   *   Len(uNetApi(0))   /   2  
                                  lReturn   =   WNetEnumResource(hEnum,   lCount,   uNetApi(0),   lBufferSize)  
                                  If   lCount   >   0   Then  
                                          ReDim   Preserve   uNet(0   To   lMin   +   lCount   -   1)   As   NETRESOURCE_REAL  
                                          For   l   =   0   To   lCount   -   1  
                                                  'Each   Resource   will   appear   here   as   uNet(i)  
                                                  uNet(lMin   +   l).dwScope   =   uNetApi(l).dwScope  
                                                  uNet(lMin   +   l).dwType   =   uNetApi(l).dwType  
                                                  uNet(lMin   +   l).dwDisplayType   =   uNetApi(l).dwDisplayType  
                                                  uNet(lMin   +   l).dwUsage   =   uNetApi(l).dwUsage  
                                                  If   uNetApi(l).pLocalName   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pLocalName)  
                                                          uNet(lMin   +   l).sLocalName   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sLocalName,   ByVal   uNetApi(l).pLocalName,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pRemoteName   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pRemoteName)  
                                                          uNet(lMin   +   l).sRemoteName   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sRemoteName,   ByVal   uNetApi(l).pRemoteName,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pComment   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pComment)  
                                                          uNet(lMin   +   l).sComment   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sComment,   ByVal   uNetApi(l).pComment,   lLength  
                                                  End   If  
                                                  If   uNetApi(l).pProvider   Then  
                                                          lLength   =   lstrlen(uNetApi(l).pProvider)  
                                                          uNet(lMin   +   l).sProvider   =   Space$(lLength)  
                                                          CopyMem   ByVal   uNet(lMin   +   l).sProvider,   ByVal   uNetApi(l).pProvider,   lLength  
                                                  End   If  
                                          Next   l  
                                  End   If  
                                  lMin   =   lMin   +   lCount  
                          Loop   While   lReturn   =   ERROR_MORE_DATA  
                  End   If  
                  If   hEnum   Then  
                          l   =   WNetCloseEnum(hEnum)  
                  End   If  
          Loop   While   lLastIndex   <   lMin  
          TreeView1.Nodes.Add   ,   ,   "R",   "网络资源"  
          If   UBound(uNet)   >   0   Then  
                  For   l   =   0   To   UBound(uNet)  
                          Select   Case   uNet(l).dwDisplayType  
                                  Case   RESOURCEDISPLAYTYPE_DIRECTORY&  
                                '           Debug.Print   "Directory...",  
                                  Case   RESOURCEDISPLAYTYPE_DOMAIN  
                                  '         TrvComputer.Nodes.Add   ,   ,   "R",   "Domain..."   &   uNet(l).sRemoteName,   1  
                                        '   Debug.Print   "Domain...",  
                                  Case   RESOURCEDISPLAYTYPE_FILE  
                                      '     Debug.Print   "File...",  
                                  Case   RESOURCEDISPLAYTYPE_GENERIC  
                                      '     Debug.Print   "Generic...",  
                                  Case   RESOURCEDISPLAYTYPE_GROUP  
                                      '     Debug.Print   "Group...",  
                                  Case   RESOURCEDISPLAYTYPE_NETWORK&  
                                   
                                    '       Debug.Print   "Network...",  
                                  Case   RESOURCEDISPLAYTYPE_ROOT&  
                                    '       Debug.Print   "Root...",  
                                  Case   RESOURCEDISPLAYTYPE_SERVER  
                                          Set   nodX   =   TreeView1.Nodes.Add("R",   tvwChild,   "node"   &   l,   uNet(l).sRemoteName)  
                                           
                                  '         Debug.Print   "Server...",  
                                  Case   RESOURCEDISPLAYTYPE_SHARE  
                                    '       Debug.Print   "Share...",  
                                  Case   RESOURCEDISPLAYTYPE_SHAREADMIN&  
                                  '         Debug.Print   "ShareAdmin...",  
                          End   Select  
                      '     Debug.Print   uNet(l).sRemoteName,   uNet(l).sComment  
                  Next   l  
          End   If  
          nodX.EnsureVisible  
  End   Sub  
   
  Private   Sub   Form_Load()  
          Call   GetLocalInfo  
  End   Sub  
  Top

4 楼WiseNeuro(春之舞)回复于 2005-01-09 11:55:25 得分 0

谢谢各位大侠!太棒了!Top

相关问题

  • 怎样用vb编写程序来扫描文件夹
  • 怎么用VB做一个IP扫描软件?
  • 谁有vb编写的控制扫描仪的程序或相应其它语言写的扫描组件急购
  • 如何编写端口扫描???
  • VB编写ActiveX DLL急救
  • 关于VB驱动编写
  • vb编写Active X问题
  • 如何用VB控制扫描仪去扫描图片??
  • 如何用VB操作扫描仪?
  • VB中如何使用扫描仪

关键词

  • vb.net
  • resourcedisplaytype
  • ivb
  • resourcetype
  • asphttp
  • private const
  • down
  • as long
  • resource
  • www.5

得分解答快速导航

  • 帖主:WiseNeuro
  • cso
  • tztz520
  • pcwak

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo