说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎样显示局域网内的所有计算机

编辑:说三道四文库 发布时间:2018-04-27 01:10
HTML文档下载 WORD文档下载 PDF文档下载
一个内网通讯的项目,需要显示如同网上邻居一样的窗体,所有的计算机均显示,而不论是否安装了客户端程序。

  我有个笨方法,要察看的时候用内网 ip 循环测试,但是速度太慢。不能考虑
请各位高手帮忙
up
如果都在windows域內,用ADSI
參照MSDN-ADSI
using System;
using System.DirectoryServices;
using System.Net;

class TestClass
{
static void Main (string[] args)
{
ShowComputers();
}
public static void ShowComputers()
{
                //or use "WinNT://your_domain_name"
DirectoryEntry root = new DirectoryEntry("WinNT:");           DirectoryEntries domains = root.Children;
domains.SchemaFilter.Add("domain");
foreach (DirectoryEntry domain in domains)
{
Console.WriteLine(domain.Name);
DirectoryEntries computers = domain.Children;
computers.SchemaFilter.Add("computer");
foreach (DirectoryEntry computer in computers)
{
Console.WriteLine("\t" + computer.Name);
IPHostEntry iphe = Dns.GetHostByName(computer.Name);
foreach (IPAddress ip in iphe.AddressList)
{
Console.WriteLine("\t\t" + ip);
}
DirectoryEntries users = computer.Children;
}
}
}

}
我的理解是这样,就是说 directoryentry.children 就是域名列表,而每个域名列表的子项
则是计算机名。

DirectoryEntry root = new DirectoryEntry("WinNT:");           DirectoryEntries domains = root.Children;

上面明明指出了 域名为winnt 下面还要domains做什么?
51我休息在家,没办法看到sdk
要是紫虫兄能再祥加解释就太好了
利用DirectoryEntry组件来查看网络

http://www.microsoft.com/china/community/TechZone/TechArticle/TechDoc/DirectoryEntry.asp
http://expert.csdn.net/Expert/topic/1481/1481409.xml
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘