The WNetEnumResource function continues a network-resource enumeration started by the WNetOpenEnum function. DWORD WNetEnumResource( HANDLE hEnum, // handle to enumeration LPDWORD lpcCount, // pointer to entries to list LPVOID lpBuffer, // pointer to buffer for results LPDWORD lpBufferSize // pointer to buffer size variable );用上面这个函数配合相应的函数可以实现你要的功能,我自已写过一个 局域网内利用消息服务发送短消息的软件,利用以上函数采用递归的方 法就可以列举出所有的主机(网络类型不同可能不一定管用,仅供参考)
net view /domain
2)检测当前domain中的主机名字
net view /domain:Workgroup
还能得到域内所有组,所有用户等信息
不过这个都是windows平台下的
本地方法调用c
HANDLE hEnum, // handle to enumeration
LPDWORD lpcCount, // pointer to entries to list
LPVOID lpBuffer, // pointer to buffer for results
LPDWORD lpBufferSize // pointer to buffer size variable
);用上面这个函数配合相应的函数可以实现你要的功能,我自已写过一个
局域网内利用消息服务发送短消息的软件,利用以上函数采用递归的方
法就可以列举出所有的主机(网络类型不同可能不一定管用,仅供参考)
or implement NetBios Protocal in java, or native call Windows API/ADSI/'Net' command.
相当于一个广播:
例如:自己的IP是:192.168.0.20;
那逐个监测:192.168.0.0~192.168.0.255;
大致如下,我从我以前的程序直接该的没编译过!
public void broadcast()
{
byte [] addr=null; try
{
InetAddress ita = InetAddress.getLocalHost();
addr = ita.getAddress();
}
catch(Exception e)
{}
System.out.println(addr[0]+","+addr[1]+","+addr[2]+","+addr[3]);
addr[3] = 0;
try
{
for(int i=0;i<255;i++)
{
System.out.println(InetAddress.getByAddress(addr)); addr [3]++;
}
}
catch(Exception e)
{
}
}