Exemplo n.º 1
0
        public static PerformanceCounterDatagram ParsePerformanceCounterDatagram(string datagram, int severity, int facility, DateTime sentDateTime, string sourceIPAddress)
        {
            var parsedDatagram = new PerformanceCounterDatagram(datagram, severity, facility, sentDateTime, sourceIPAddress);
            var i = datagram.IndexOf("NSysmon.Forwarder[", StringComparison.InvariantCultureIgnoreCase);
            var header = datagram.Substring(0, i - 1);

            parsedDatagram.Node_Name = header.Substring(header.LastIndexOf(' ') + 1);
            if (parsedDatagram.Node_Name.Contains(':'))
            {
                // node name cannot contain ':' so this must not be it
                parsedDatagram.Node_Name = sourceIPAddress;
            }
            i = datagram.IndexOf("NSysmon.Forwarder[", StringComparison.InvariantCultureIgnoreCase);
            i += 7;
            parsedDatagram.Pid = ParseString(datagram, i, ']', out i);
            i += 2; // skip space
            i += 3; // skip "PC "
            parsedDatagram.PerformanceCounterCategory = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterName = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterInstance = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterValue = ParseFloat(datagram, i, '"', out i);

            return parsedDatagram;
        }
Exemplo n.º 2
0
        public static PerformanceCounterDatagram ParsePerformanceCounterDatagram(string datagram, int severity, int facility, DateTime sentDateTime, string sourceIPAddress)
        {
            var parsedDatagram = new PerformanceCounterDatagram(datagram, severity, facility, sentDateTime, sourceIPAddress);
            var i      = datagram.IndexOf("NSysmon.Forwarder[", StringComparison.InvariantCultureIgnoreCase);
            var header = datagram.Substring(0, i - 1);

            parsedDatagram.Node_Name = header.Substring(header.LastIndexOf(' ') + 1);
            if (parsedDatagram.Node_Name.Contains(':'))
            {
                // node name cannot contain ':' so this must not be it
                parsedDatagram.Node_Name = sourceIPAddress;
            }
            i  = datagram.IndexOf("NSysmon.Forwarder[", StringComparison.InvariantCultureIgnoreCase);
            i += 7;
            parsedDatagram.Pid = ParseString(datagram, i, ']', out i);
            i += 2; // skip space
            i += 3; // skip "PC "
            parsedDatagram.PerformanceCounterCategory = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterName = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterInstance = ParseString(datagram, i, '"', out i);
            i += 2; // skip space and quote
            parsedDatagram.PerformanceCounterValue = ParseFloat(datagram, i, '"', out i);

            return(parsedDatagram);
        }