In C# FAQs Series: We discuss most frequent questions asked on C# forums.In this session we will see how to get all machines connected on LAN using C# code. You can use windows built-in tool net.exe to achieve this. All you need to do is start it using Process class and send view command. using System.Diagnostics; using System.IO; //Gets the machine names that are connected on LAN Process NetworkUtility = new Process(); NetworkUtility.StartInfo.FileName = "net.exe"; NetworkUtility.StartInfo.CreateNoWindow = true; NetworkUtility.StartInfo.Arguments = "view"; NetworkUtility.StartInfo.RedirectStandardOutput = true; NetworkUtility.StartInfo.UseShellExecute = false; NetworkUtility.StartInfo.RedirectStandardError = true; NetworkUtility.Start(); StreamReader streamReader = new StreamReader(NetworkUtility.StandardOutput.BaseStream, NetworkUtility.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(); NetworkUtility.WaitForExit(1000); All machines on LAN will be added in listBox1.
No comments:
Post a Comment