我需要获取网络上所有计算机的列表
网络分为两个本地网络。管理网络和教育网络,然后在每个管理和教育网络下,每个校园都有子网。因此,每个校区都有一个管理员和一个教育域控制器。
我可以运行" net view"在每个子网的命令提示符下获取所有计算机的列表,但我希望能够在一台服务器上运行它,或者如果我需要两台服务器(一台用于管理网络,一台用于教育网络)
我知道像nmap这样的应用程序可以做到这一点,但我希望能够使用内置的Windows功能,例如" net view"或者写点我自己的东西。
其他细节: 我有一个程序(由以前的开发人员编写)作为后台服务运行,并在每台计算机上启动弹出窗口并在启动火警时播放.mp3文件。我希望得到这个程序,并使用PsExec启动弹出窗口并播放消息,而不是在每台计算机上安装该服务。我有PsExec工作,但需要获得所有计算机的列表。
答案 0 :(得分:9)
查找网络上的所有活动/已用IP地址 有一种非常简洁的方法,您可以轻松找到网络上所有活动/使用的IP地址,而无需任何第三方应用程序,或者更糟糕的是,单独ping每个IP地址。
打开命令提示符并输入以下内容:
FOR / L%i IN(1,1,254)DO ping -n 1 192.168.10。%i | FIND / i“回复”>> c:\ ipaddresses.txt
更改192.168.10以匹配您自己的网络。
答案 1 :(得分:0)
您可以拥有一个运行Net View
的批处理文件,并将其转储到文本文件中。从那以后,您可以使用该数据做任何您想做的事情。这可以每天作为计划任务运行,也可以在添加新计算机时手动运行。
答案 2 :(得分:0)
我不知道您工作的网络有多大,但您可以尝试查询Active Directory。请查看下面的链接,了解更多信息。
答案 3 :(得分:0)
你能试试吗?
代码C#:
// Get host name from current network
String strHostName = Dns.GetHostName();
List<string> machinesName = new List<string>();
// Find host by name
IPHostEntry iphostentry = Dns.GetHostByName(strHostName);
// Enumerate IP addresses from current network
int nIP = 0;
foreach(IPAddress ipaddress in iphostentry.AddressList)
{
host = Dns.GetHostByAddress(ipaddress);//ip Address is to be specified machineName
//Add machine name into the list
machinesName.Add(host.HostName);
}
答案 4 :(得分:0)
你可以试试这个: - 使用C#代码: - / *必须包含这些库* /
using System.Net;
using System.Net.Sockets;
private void GetIP()
{
Process netUtility = new Process();
netUtility.StartInfo.FileName = "net.exe";
netUtility.StartInfo.CreateNoWindow = true;
netUtility.StartInfo.Arguments = "view";
netUtility.StartInfo.RedirectStandardOutput = true;
netUtility.StartInfo.UseShellExecute = false;
netUtility.StartInfo.RedirectStandardError = true;
netUtility.Start();
StreamReader streamReader = new StreamReader(netUtility.StandardOutput.BaseStream, netUtility.StandardOutput.CurrentEncoding);
string line = "";
while ((line = streamReader.ReadLine()) != null)
{
if (line.StartsWith("\\"))
{
listBox1.Items.Add(line.Substring(2).Substring(0, line.Substring(2).IndexOf(" ")).ToUpper());
}
}
streamReader.Close();
netUtility.WaitForExit(1000);
}
有关详细信息,我已经制作了一个Windows聊天应用程序,我正在使用此代码获取网络中系统名称的列表。你可以检查它是如何工作的。链接是https://github.com/akki9c/wifi-chating/blob/master/chatSample/chatSample/Form1.cs