30/09/2018
Trong bài viết này chúng tôi chia sẻ với các bạn việc liệt kê danh sách IP và tên máy trong mạng nội bộ (LAN) vào Listbox trong lập trình .Net (code được viết bằng C#)

Trong bài viết này chúng tôi chia sẻ với các bạn việc liệt kê danh sách IP và tên máy trong mạng nội bộ (LAN) vào Listbox trong lập trình .Net (code được viết bằng C#)

             string strHostName = string.Empty;

            lstboxIP.Items.Clear();

            // Lấy IP của các máy trong mạng nội bộ (LAN)...

            strHostName = Dns.GetHostName();

            // Lấy hostname sau đó lấy IP tương ứng.

            IPHostEntry ipEntry = Dns.GetHostByName(strHostName);

            IPAddress[] iparrAddr = ipEntry.AddressList;

 

            if (iparrAddr.Length > 0)

            {

                for (int intLoop = 0; intLoop < iparrAddr.Length; intLoop++)

                    lstboxIP.Items.Add(iparrAddr[intLoop].ToString());

            }

            //Đoạn code dưới đây liệt kê danh sách tên máy

            //Ý tưởng ở đây là lấy kết quả của lệnh DOS: net view

            //Bạn có thể tham khảo đoạn code này để lấy kết quả

            //việc thực thi các lệnh khác, chẳng hạn tree, dir,...

            //Để sử dụng cần thêm thư viện

            //using System.IO;

            //using System.Diagnostics;

             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("\\"))

                {

                    lstboxIP.Items.Add(line.Substring(2).Substring(0,

                        line.Substring(2).IndexOf(" ")).ToUpper());

                }

            }

            streamReader.Close();

            netUtility.WaitForExit(1000);