예제 #1
0
        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");
            }
        }
예제 #2
0
        /// <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);
        }