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; }
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); }