Задать вопрос
  • Как пропарсить XML документ C#?

    @nikita__good Автор вопроса
    Как можно с тобой связаться? я думаю ты хороший программист, который сейчас мне нужен
  • Как правильно написать класс C#?

    @nikita__good Автор вопроса
    Smilleey, да я уже все это делал 1000 раз, у меня не записывается ничего в эту структуру
  • Как правильно написать класс C#?

    @nikita__good Автор вопроса
    Было бы все так просто...
    public static class ParsBase
        {
            public List<HostInfo> hostInfo;
            struct HostInfo
            {   
                public string ip, mac;
                public List<PortInfo> ports;
                public struct PortInfo
                {
                    public string nameport;
                    public int num;
                    public bool isOpen;
                    public bool isFiltered;
                }
    
            }
        }

    618b4580dfcbe037477986.png
  • Как пропарсить XML документ C#?

    @nikita__good Автор вопроса
    сергей кузьмин, сделал уже
    static class Parsing //парсинг результатов работы nmap
        {
            public static void ParsingReport(string path)
            {
                Int64 hostCount = 0;
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(path);
                // получим корневой элемент
                XmlElement xMain1 = xDoc.DocumentElement;
                // обход всех узлов в корневом элементе
                foreach (XmlNode xnode2 in xMain1)
                {
                    if (xnode2.LocalName == "host")
                    {
                        foreach (XmlNode xnode3 in xnode2.ChildNodes)
                        {
                            XmlNode attr = xnode3.Attributes.GetNamedItem("addrtype");
                            if((attr != null)&& (attr.Value == "ipv4"))
                            {
                                XmlNode attr2 = xnode3.Attributes.GetNamedItem("addr");
                                if (attr2 != null)
                                    MessageBox.Show("АЙПИ РАБОТАЕТ");
                                //сделать запись ip адреса
                                
                            }
                            if ((attr != null) && (attr.Value == "mac"))
                            {
                                XmlNode attr2 = xnode3.Attributes.GetNamedItem("addr");
                                if (attr2 != null)
                                    MessageBox.Show("Мак РАБОТАЕТ");
                                //сделать запись mac адреса
                            }
                            if (xnode3.LocalName == "ports")
                            {
                                foreach (XmlNode xnode4 in xnode3.ChildNodes)
                                {
                                    if (xnode4.LocalName == "port")
                                    {
                                        XmlNode attr2 = xnode4.Attributes.GetNamedItem("portid");
                                        if (attr2 != null)
                                            MessageBox.Show("Получили номер порта");
                                        //сделать запись номера порта
                                        foreach (XmlNode xnode5 in xnode4.ChildNodes)
                                        {
                                            if (xnode5.LocalName == "state")
                                            {
                                                XmlNode attr1 = xnode5.Attributes.GetNamedItem("state");
                                                if (attr1 != null)
                                                    MessageBox.Show("получили статус порта");
                                                     //сделать запись статуса порта
                                            }
                                            if (xnode5.LocalName == "service")
                                            {
                                                XmlNode attr1 = xnode5.Attributes.GetNamedItem("name");
                                                if (attr1 != null)
                                                    MessageBox.Show("получили имя сервиса порта");
                                                     //сделать запись имени сервиса порта
                                            }
    
                                        }
                                            
                                    }
                                }
                            } 
                        }
                        hostCount++;
                    }
                }
            }
        }