Проверка, включен ли другой компьютер - PullRequest
0 голосов
/ 16 апреля 2020

Можно ли в любом случае проверить, включен ли компьютер с помощью C#?

Я пытался использовать это.

private static bool IsMachineUp(string hostName)
    {
        bool retVal = false;
        try
        {
            Ping pingSender = new Ping();
            PingOptions options = new PingOptions();
            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;
            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes(data);
            int timeout = 120;

            PingReply reply = pingSender.Send(hostName, timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                retVal = true;
            }
        }
        catch (Exception ex)
        {
            retVal = false;
            Console.WriteLine(ex.Message);
        }
        return retVal;
    }

Но проблема в том, что он всегда возвращает true при нахождении ip внутренней сети и всегда возвращает false при нахождении по внешней сети.

Есть ли другой способ ?? Просто чтобы определить, включен или выключен ap c.

Или, если внешняя сеть недоступна, есть ли способ узнать, действительно ли ip внешней сети используется компьютером?

...