// 로그온/오프 이벤트 핸들러 static void EventLogCallback(object obj, EventRecordWrittenEventArgs arg) { if (arg.EventRecord != null) { String xmlString = arg.EventRecord.ToXml(); String resultString; try { XmlDocument xd = new XmlDocument(); xd.LoadXml(xmlString); LogOnOffMessageManager logonMessage = new LogOnOffMessageManager(" "); resultString = logonMessage.makeMessage(xmlString); SyslogManager.portableSyslogUdpSend(ConfigManager.getIp(), ConfigManager.getPort(), resultString); } catch (Exception e) { _localLog.WriteEntry("Log on off message make error \r\n" + e.ToString(), EventLogEntryType.Error); } } else { _localLog.WriteEntry("Event Record is Null", EventLogEntryType.Error); } }
// IP 변경에 대한 이벤트 핸들러 static void AddressChangedCallback(object sender, EventArgs e) { String xmlString = "<event><description>network interface change event occur</description>"; byte[] data = _encoding.GetBytes(xmlString); NetworkInterface[] nts = NetworkInterface.GetAllNetworkInterfaces(); DateTime now = DateTime.UtcNow; // event Log Time Format string currentTimeString = now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff00K", CultureInfo.InvariantCulture); foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet) { foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses) { if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { xmlString += "<ip>" + ip.Address.ToString() + "</ip>"; xmlString += "<mac>" + ni.GetPhysicalAddress().ToString() + "</mac>"; xmlString += "<hostname>" + Dns.GetHostName() + "</hostname>"; xmlString += "<currentSystemTime>" + currentTimeString + "</currentSystemTime>"; xmlString += "</event>"; } } } } // xml을 안만들고 바로 message 만들기도 가능 IpChangeMessageManager ipChangeMessageManager = new IpChangeMessageManager(" "); String resultString = ipChangeMessageManager.makeMessage(xmlString); SyslogManager.portableSyslogUdpSend(ConfigManager.getIp(), ConfigManager.getPort(), resultString); }