如何判断LAN中某一台电脑是否开机...

yezhitu 2005-01-06 10:01:40
我用ICMP来PING,如果计算机数量比较多的话就会好慢。。有什么办法可以最快判断局域网里所以计算机的状态(开机或关机)
...全文
241 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbchen 2005-01-14
  • 打赏
  • 举报
回复
如果别人开了防火墙的话,就只能用arp的方法来探测了.
给你一个思路吧,用constantine(飘遥的安吉儿) 的方法.也就是send_arp的办法.不过不用等待send_arp返回.不然速度太慢.
具体是:开10个或者更多线程.每个线程调用constantine(飘遥的安吉儿)的send_arp的方法.
另外开一个线程,用winpcap来监听arp reply包.如果有返回,说明该IP地址是存活的.
用这种方法速度很快,我测试果,探测一个C段也就几秒钟的时间.
ghiewa 2005-01-10
  • 打赏
  • 举报
回复
去实验 constantine(飘遥的安吉儿) ( ) 信誉:111
的答复了
aliang005 2005-01-09
  • 打赏
  • 举报
回复
C:\Documents and Settings\Administrator>net view
服务器名称 注释

--------------------------------------------------------
\\ALIANG
\\ANGEL
\\GH-AS2
\\MICROSOF-NW41WP
\\WINR
\\ZZL
命令成功完成。
分析字符串吧,这样快一点
wupengtao 2005-01-08
  • 打赏
  • 举报
回复
用冰河一扫就知道啦.
yezhitu 2005-01-08
  • 打赏
  • 举报
回复
iphlpapi.lib

这个库在哪啊?找不到!
yezhitu 2005-01-08
  • 打赏
  • 举报
回复
我说的是我在我自己的程序里实现
constantine 2005-01-07
  • 打赏
  • 举报
回复
回复人: COKING(疯间猖越) ( ) 信誉:100 2004-11-30 15:26:15 得分: 25
以下代码win2000以上可以用,只要判断下面x或mac值就可以了。

#include <iphlpapi.h>>//要添加iphlpapi.lib文件
#include <winsock2.h

ULONG mlen=6;
ULONG mac[2]={0};
ULONG x=SendARP(inet_addr("10.0.0.1"),0,mac,&mlen);
Javpp 2005-01-07
  • 打赏
  • 举报
回复
看他的电源灯有没有亮:)
yijiansong 2005-01-07
  • 打赏
  • 举报
回复
学习
Maconel 2005-01-07
  • 打赏
  • 举报
回复
那这段代码得到ip就不慢啦?
反正要知道一台机有没有开机,总先要知道它的ip吧,如果它的ip定了就好办,如果会变的,那就只有自己写代码来得到,或者直接ping 主机名,我想没什么好办法,除非那台机子里有你的客户端。
hellolongbin 2005-01-07
  • 打赏
  • 举报
回复
根据IP来ping就不慢了,这段代码是根据计算机名获得IP的,不过是pascal的,你可以自己转一下
function GetHostIP(HostName: String): String;
var
buf:pChar;
iWsaRet:Integer;
Data:WSAData;
hostent:PHostEnt;
begin
Result := '';
iWsaRet := WSAStartup($101,Data);
if iWsaRet<>0 then
begin
ShowMessage('Socket initialize error!');
Exit;
end;
buf := Allocmem(60);
strcopy(buf,PChar(HostName));
if Trim(buf)='' then
gethostname(buf,60);
hostent := gethostbyname(buf);
Freemem(buf,60);
if hostent=nil then
Exit;
Result := inet_ntoa(pinAddr(hostent^.h_addr^)^);
WSACleanup();
end;
yezhitu 2005-01-06
  • 打赏
  • 举报
回复
PING是不慢的。我主要是用计算机名来PING。所以在解释那好慢。。有什么解决办法?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧