private void btnThisMacOnline_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtMacToCheck.Text)) { MessageBox.Show("MAC to check can't be empty", "Empty MAC"); return; } MACHandler macHandler = new MACHandler(); try { if (macHandler.IsOnline(MACHandler.ConvertToOnlyNumberMac(txtMacToCheck.Text))) { MessageBox.Show("The PC of this MAC is online now", "Online", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("The PC of this MAC is offline now", "Offline", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (ArgumentNullException ex) { MessageBox.Show($"{ex.Message}\n" + $"Error: {ex.InnerException.Message}", "This MAC Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show($"Error when ping: {ex.Message}", "Ping Error"); } }
/// <summary> /// Duyệt qua các phần tử của AllMacDoc từ vị trí của lần duyệt trước đó /// </summary> /// <returns>Một MACEntity chứa thông tin của địa chỉ MAC</returns> public MACEntity IterateAllRow() { MACEntity resultMAC = new MACEntity(); MACHandler macHandler = new MACHandler(); XmlNodeList nodes = allMacDoc.DocumentElement.ChildNodes; for (int i = lastRowVisited + 1; i <= nodes.Count; i++) { string manufacturer = (nodes[i].Attributes["manufacturer"]?.Value) ?? ""; string mac = nodes[i].Attributes["mac"].Value; string hostName = nodes[i].Attributes["name"].Value; if (manufacturer == vmwareManufacturer || manufacturer == routerManufacturer) { continue; } try { if (!macHandler.IsOnline(mac)) //MAc này không online nên có thể dùng được { resultMAC.MAC = mac; resultMAC.Manufacturer = manufacturer; resultMAC.HostName = hostName; lastRowVisited = i; break; } } catch (ArgumentNullException) //MAC này không xuất hiện trong ARP table nên có thể dùng được { resultMAC.MAC = mac; resultMAC.Manufacturer = manufacturer; resultMAC.HostName = hostName; lastRowVisited = i; break; } } return(resultMAC); }