怎样搜索局域网上的计算机

在一个局域网上,网络编程IP相关问题

1.怎么搜索局域网上的计算机?

2.怎样通过一个计算机的IP地址获得其网卡物理地址?

例如,我的计算机为A,局域网上的有另外一台计算机为B,怎样在A上通过B的IP地址获取B的网卡物理地址?

如何编程用C++Builder编程实现?

//------------来自JiShiPing(JSP季世平)的代码:---------------
#include  <winnetwk.h >
#include  <winsock2.h >
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  TStrings *netList=new TStringList();
  TListItem *NewItem;
  //
  ListView1- >Items- >Clear();
  Screen- >Cursor=crHourGlass;
  //
  EnumNetResource(netList,NULL,RESOURCE_GLOBALNET,RESOURCETYPE_ANY);
  for(int i=0;i <netList- >Count;i++)
  {
   NewItem=ListView1- >Items- >Add();
   NewItem- >Caption=netList- >Strings[i];
   NewItem- >SubItems- >Add(gethostip(netList- >Strings[i]));
  }
  Screen- >Cursor=crDefault;
  delete netList;
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::EnumNetResource(TStrings *rcList,LPNETRESOURCE lpNR, DWORD dwScope,DWORD dwType)
{
  HANDLE hEnum = 0; // resource-handle
  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,&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)
AnsiString __fastcall TForm1::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());
   if(WSAGetLastError()==WSAHOST_NOT_FOUND)
   {
    IP= "无法获取 ";
    return IP;
   }
   else
   IP=inet_ntoa(*(struct in_addr*)hp- >h_addr_list[0]);
   }
  catch(...)
  {
   IP= " ";
  }
  WSACleanup();
  return IP;
}

时间: 2024-08-02 20:34:16

怎样搜索局域网上的计算机的相关文章

黑客在搜索结果上动手脚 诱网民上当借机牟利

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 10月6日,据外电报道,每当具有新闻性的重大事件发生,连带会在网络上掀起讨论与搜索热潮,网络犯罪者看准这一点,在搜索结果上动手脚,诱骗使用者误入恶意网站. 最近信息安全厂商侦测到,9月29号太平洋的萨摩亚群岛发生强震,因而引发海啸,造成数以百计的民众伤亡,就在实际的伤亡还没有明朗的情况下,网络犯罪者伺机而动,趁机大发灾难财,架设恶意网站,当网

在局域网上如何测试IIS的安装成功

在局域网上如何测试IIS的安装成功?按如下步骤: 你的计算机已经连接到局域网并且名称解析正确 确定WWW服务已经启动(使用Microsoft Internet Service Manager,检验状态) 启动IE 在地址栏中输入主页的地址URL(在你的服务器名前加上http://,比如拟的计算机叫myserver,URL就是 "http://myserver) IE显示首页 客户端的FTP软件无法显示虚拟目录的目录名,但使用cd可以直接进入目录,或用ls加目录名可以直接列出目录下的文件, 如何解

Windows8中如何在桌面上显示“计算机”图标

  1.登陆 Windows 8 Metro 界面,单击左下角桌面图标,如下图: 计算机"图标-windows8计算机图标"> 2.如果用户第一次部署完 Windows 8 系统,进入桌面无计算机图标,如下图: 3.在桌面空白处点击右键,选择个性化,如下图: 4.进入个性化窗口,选择左上角:更改桌面图标,如下图: 5.进入更改桌面图标窗口,勾选桌面图标下的"计算机"复选框(如果需要在桌面上显示控制面板.网络等图标,勾选相应复选框),如下图: 6.选择"

局域网访问jsp-为什么局域网上其他电脑上的jsp页面没有跟着我本机变化呢,刷新之后也没变

问题描述 为什么局域网上其他电脑上的jsp页面没有跟着我本机变化呢,刷新之后也没变 我的数据库文件放在我本机web工程下面的,我更改了数据库中的数据,要刷新整个web工程再去刷新jsp页面,jsp页面上的数据才会更新,后来到tomcat下面的webapps找到了我的数据库文件然后修改了数据,不用刷新整个web工程,直接刷新jsp页面,jsps上的数据变了,现在我弄了个定时函数定时到数据库中取数据,修改数据库中的数据,jsp页面上的数据就自动更新了,现在的问题是,我本机上的jsp页面上的数据在动态

iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码_IOS

废话不多说了,直接给大家贴代码了. 具体代码如下所示: #import "ViewController.h" #import "TuanGouModel.h" #import "TuanGouTableViewCell.h" #define kDeviceWidth [UIScreen mainScreen].bounds.size.width #define kDeviceHeight [UIScreen mainScreen].bounds.

百度 vs 360 vs 搜狗:搜索市场上的巨头

在搜索市场上,是不可能说两个搜索引擎一样的说法,肯定会有个东风压倒西风,这一点在全球市场都是这样的模式发展的.雅虎在日本和台湾独占鳌头,Naver在韩国有压倒性优势,Yandex称霸俄罗斯.谷歌在全球大部分市场占垄断地位,在至少30个国家和地区占有90%以上的份额.而在中国大陆,百度则把持搜索市场多年. 事实似乎在不断地暗示,搜索市场要么赢者通吃,要么什么都没的吃,美国搜索市场的老二老三,必应和雅虎,一惊干巴巴的看着谷歌好多年,咽口水都已成了习惯性动作,以至于财大气粗的微软要推出一个制作精美的反

Windows Server 2012 R2在桌面上显示计算机/网络图标

原文 Windows Server 2012 R2在桌面上显示计算机/网络图标 从Windows2012开始,微软取消了服务器桌面个性化选项,如何重新调出配置界面,可以使用微软命令调出.具体方法如下: 1.同时按住键盘上的"Windows键"+"R",调出运行窗口.在运行窗口输入 "rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0"确定.(注意大小写) 2.在弹出的桌面个性化窗口选择需要在桌面

Yandex 已经于去年年底在搜索量上超越微软必应

摘要: 据国外媒体报道,美国全球市场研究机构comScore旗下搜索引擎分析服务qSearch公布的最新数据显示,俄罗斯搜索引擎Yandex 已经于去年年底在搜索量上超越微软必应,成为全球第四大搜索引 据国外媒体报道,美国全球市场研究机构comScore旗下搜索引擎分析服务qSearch公布的最新数据显示,俄罗斯搜索引擎Yandex 已经于去年年底在搜索量上超越微软必应,成为全球第四大搜索引擎. comScore在周四表示,Yandex于去年11月在搜索量方面赶超微软.去年11月,Yandex处

快速搜索局域网计算机及IP地址并输出文件

计划作了解局域网每台电脑的CPU,内存耗用情况的自动JOB. 那么就得一个一个脚本的收集组装了. 第一次,获取计算机和IP. 注:如果在运行时提示GET-ADCOMPUTER命令不能识别,则注意运行载入AD对象的POWERSHELL.切记.. PS C:\script> Get-ADComputer -Filter * -Properties ipv4Address, OperatingSystem, OperatingSystemServicePack | Format-List name,