[C#] Hướng dẫn lấy tất cả các ip cùng lớp mạng trong mạng LAN
Xin chào các bạn, hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách lấy tất cả các tên máy và ipadrress trong mạng LAN bằng ngôn ngữ lập trình C#. Cách tìm kiếm chúng ta sẽ sử dụng hàm "NET VIEW" trong MS-DOS, để lấy thông tin tất cả các máy. ...
Xin chào các bạn, hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách lấy tất cả các tên máy và ipadrress trong mạng LAN bằng ngôn ngữ lập trình C#.
Cách tìm kiếm chúng ta sẽ sử dụng hàm "NET VIEW" trong MS-DOS, để lấy thông tin tất cả các máy.
Sau đó, chúng ta sẽ cắt chuỗi từ hàm NET VIEW trả về và hiển thị dữ liệu lên ListView.
Bước 1: Các bạn mở màn hình CMD và gõ vào lệnh NET VIEW để xem kết quả như hình bên dưới:
- Theo hình trên, các bạn sẽ thấy được dữ liệu trả về gồm 3 máy.
Bước 2: Cắt chuỗi dữ liệu trả về và hiển thị nó lên Listview.
Giao diện phần mềm lấy tất cả ipaddress trong mạng nội bộ
Full source code get ip in Lan C#:
private void button1_Click(object sender, EventArgs e) { 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("\")) { string pcname = line.Substring(2).Substring(0, line.Substring(2).IndexOf(" ")).ToUpper(); string myIP = Convert.ToString(Dns.GetHostByName(line.Substring(2).Substring(0, line.Substring(2).IndexOf(" ")).ToUpper()).AddressList[0].ToString()); ListViewItem item = new ListViewItem(new string[] { pcname, myIP }, 0); listView1.Items.AddRange(new ListViewItem[] { item }); } } streamReader.Close(); netUtility.WaitForExit(1000); }
HAPPY CODING
DOWNLOAD SOURCE