C# 模仿PING操作,监控主机是否可以通信

以下是C#代码,可以直接复制使用。

using System;
using System.Collections.Generic;
using System.Text;
using System.Management;

namespace PingMock
{
    class MockerClass
    {
        private static Object thisobject = new Object();
        public void Ping(string Host)
        {
            //string rtn = "";
            
            ManagementObjectSearcher mos = null;
            ManagementObjectCollection moc = null;
            LogClass writeLog = new LogClass();

            try
            {
                string searchString = "select * from win32_PingStatus where Address = '" + Host.Trim() + "'";

                mos = new ManagementObjectSearcher(searchString);
                moc = mos.Get();

                foreach (ManagementObject mo in moc)
                {
                    object obj = mo.Properties["StatusCode"].Value;

                    if (obj == null)
                    {
                        lock (thisobject)
                        {
                            writeLog.WriteLogFile(Host + " PING 执行失败。可能是主机未知。");
                        }
                        //return Host+" PING 执行失败。可能是主机未知。";
                    }
                    else
                    {
                        if (obj.ToString().Trim() == "0")
                        {
                            //rtn = "OK";
                            break;
                        }
                        lock (thisobject)
                        {
                            writeLog.WriteLogFile(Host + " PING 不通!");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                writeLog.WriteLogFile(Host + " PING 不通,可能原因为:" + ex.Message);
                //rtn = Host+" PING 不通,可能原因为:"+ ex.Message;
            }
            finally
            {
                if (moc != null) moc.Dispose();
                if (mos != null) mos.Dispose();
            }

            //return rtn;
        } 
    }
}

  

可以修改城自己需要的形式。我这个是不返回结果,直接记录日志中。

原文地址:https://www.cnblogs.com/StupidsCat/p/2619512.html