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

怎样获得局域网中所有IP,和计算机名?

楼主eliubo(黑鹰)2002-03-27 12:16:33 在 C++ Builder / 基础类 提问

就像网上邻居一样! 问题点数:20、回复次数:5Top

1 楼webtt(tt)回复于 2002-03-27 12:40:11 得分 10

WNetOpenEnum,WNetEnumResource这两个函数实现列举计算机名称。  
  gethostbyname再用这个函数解析IP地址。Top

2 楼easyxu(Bryan)回复于 2002-03-27 12:50:36 得分 0

yTop

3 楼eliubo(黑鹰)回复于 2002-03-27 13:12:13 得分 0

WNetOpenEnum()的LPHANDLE   lphEnum   参数怎么用?Top

4 楼wjh1014(wjh)回复于 2002-03-27 13:12:22 得分 10

以前的帖子里有,这里摘抄给你  
  #include   <System.hpp>  
  #include   <classes.hpp>  
  #include   <winnetwk.h>  
  #include   <winsock.h>  
  //获取网上邻居的列表,存储在串表中  
  bool   EnumNetResource(TStrings   *rcList,LPNETRESOURCE   lpNR,   DWORD   dwScope,DWORD   dwType)  
  {  
          HANDLE   hEnum   =   0;  
          DWORD   dwResult   =   WNetOpenEnum(  
                          dwScope,         //   scope   of   enumeration  
                          dwType,                 //   resource   types   to   list  
                          0,                 //   enumerate   all   resources  
                          lpNR,                 //   pointer   to   resource   structure   (NULL   at   first   time)  
                          &hEnum                 //   handle   to   resource  
                          )   ;  
          if(   dwResult   !=   NO_ERROR   )   return   false;  
   
          bool   bRet=true;  
          DWORD   dwEntries   =   0xFFFFFFFF   ;         //   enumerate   all   possible   entries  
          NETRESOURCE   NR[1024];  
          DWORD   dwBuffer=1024*sizeof(NETRESOURCE);  
   
          while(1)   {  
                  dwResult   =         WNetEnumResource(  
                                  hEnum,                 //   resource-handle  
                          &dwEntries,  
                          (LPVOID)NR,  
                          &dwBuffer  
                          )   ;  
                  if(   dwResult   ==   ERROR_NO_MORE_ITEMS   )   break;  
          else   if(   dwResult   !=   NO_ERROR   )   {   bRet=false;   break;}  
   
                  for(DWORD   i   =   0   ;   i   <   dwEntries   ;   i++   )   {  
                          if(NR[i].dwDisplayType==RESOURCEDISPLAYTYPE_SERVER)   {  
                                  char   *p=NR[i].lpRemoteName;  
                                  while(*p=='\\')   p++;  
                  if(*p)   rcList->Add(p);  
                          }   else   if((NR[i].dwUsage&RESOURCEUSAGE_CONTAINER)==  
                                                                                      RESOURCEUSAGE_CONTAINER)   {  
                  bRet=EnumNetResource(rcList,&NR[i],dwScope,dwType);  
                                  if(bRet==false)   break;  
                          }  
                  }  
                  if(bRet==false)   break;  
          }  
   
          WNetCloseEnum(hEnum)   ;  
          return   bRet;  
  }  
   
   
  //------获取某主机的IP地址,如果主机名为空,则返回本机的名和IP地址---------  
   
  AnsiString   gethostip(AnsiString   &host)  
  {  
          WSADATA   wsaData;  
          AnsiString   IP;  
   
          WSAStartup(MAKEWORD(2,0),&wsaData);  
          if(host.IsEmpty())   {  
                  char   hostname[128];  
                  if(gethostname(hostname,128)!=0)   return   AnsiString("");  
          host=hostname;  
          }  
          try{  
                  struct   hostent   *hp=gethostbyname(host.c_str());  
                  IP=inet_ntoa(*(struct   in_addr*)hp->h_addr_list[0]);  
          }  
          catch(...){  
                  IP="";  
          }  
          WSACleanup();  
          return   IP;  
  }Top

5 楼li_aiwu(小李子)回复于 2002-05-07 15:00:33 得分 0

收藏Top

相关问题

  • 我想一上局域网就自动获取局域网里所有计算机的IP
  • "我想一上局域网就自动获取局域网里所有计算机的IP"
  • "我想一上局域网就自动获取局域网里所有计算机的IP"
  • 如何获得一个局域网内所有计算机的ip地址
  • 如何获得局域网内的所有计算机的IP和Mac地址呀?
  • 如何得到局域网中所有的计算机名
  • 如何获得局域网的所有计算机名?
  • 怎样列举局域网内所有的计算机
  • 如何搜索局域网内所有计算机的名称?
  • 如何遍历局域网中的所有计算机

关键词

  • ip
  • dwresult
  • bret
  • henum
  • dwscope
  • ansistring
  • wnetopenenum
  • dwtype
  • nr
  • wsadata

得分解答快速导航

  • 帖主:eliubo
  • webtt
  • wjh1014

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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