Команда ping

Discussion in 'Вопросы и обсуждение' started by gexweb, Jan 14, 2019.

  1. gexweb

    gexweb Client

    Joined:
    Dec 4, 2016
    Messages:
    38
    Likes Received:
    13
    Подскажите, есть ли возможность средствами C# выполнить команду "ping" с последующим взятием значения? (Не средствами стороннего веб сервиса!!!)
     
  2. Zymlex

    Zymlex Client

    Joined:
    Oct 24, 2016
    Messages:
    1,257
    Likes Received:
    608
    Примерно, так:
    Code (Csharp):
    1. System.Net.NetworkInformation.Ping pinger = null;
    2. string ip = project.Variables["IP"].Value; // IP - переменная проекта зенки
    3.  
    4. try
    5. {
    6.     pinger = new System.Net.NetworkInformation.Ping();
    7.     System.Net.NetworkInformation.PingReply reply = pinger.Send(ip);
    8.     if(reply.Status != System.Net.NetworkInformation.IPStatus.Success)
    9.         throw new Exception("Не удалось пропинговать " + ip + ". Причина: " + reply.Status);
    10.     return reply.RoundtripTime;
    11. }
    12. catch (Exception e)
    13. {
    14.     throw; // по красной
    15.     //project.SendErrorToLog(e.Message); // по зелёной
    16. }
    17. finally
    18. {
    19.     if (pinger != null) pinger.Dispose();
    20. }
    21.    
     
    Last edited: Jan 15, 2019
    Lord_Alfred and gexweb like this.
  3. gexweb

    gexweb Client

    Joined:
    Dec 4, 2016
    Messages:
    38
    Likes Received:
    13
    Спасибо работает!
     
  4. gexweb

    gexweb Client

    Joined:
    Dec 4, 2016
    Messages:
    38
    Likes Received:
    13
    Заметил интересную штуку. Пингую например ya.ru, возвращается значение задержки в переменную, все ок. Пингую любой несуществующий адрес, всегда возвращается 0. И по красной ветке никогда не выходит.
     
  5. ssXXXss

    ssXXXss Client

    Joined:
    Dec 23, 2014
    Messages:
    6,641
    Likes Received:
    1,663
    поставь проверку, если 0 то по красной выйди
     
  6. gexweb

    gexweb Client

    Joined:
    Dec 4, 2016
    Messages:
    38
    Likes Received:
    13
    Тут еще нюанс есть, если я пингую сам себя или любой локальный ресурс то получается задержка минимальная равная 1 мс, и не совсем понятно то ли программа считает что задержка 0 мс, то ли узел не доступен, возвращает значение 0.
     
  7. Zymlex

    Zymlex Client

    Joined:
    Oct 24, 2016
    Messages:
    1,257
    Likes Received:
    608
    Дополнил.
     
    doc and gexweb like this.

Пользователи просматривающие тему (Пользователей: 0, Гостей: 0)