C# 从事件id或关键字获取事件日志列表
我正在尝试获取一个事件列表,其中有人试图登录到我们的服务器,并在C# 从事件id或关键字获取事件日志列表,c#,event-log,C#,Event Log,我正在尝试获取一个事件列表,其中有人试图登录到我们的服务器,并在x尝试失败后立即阻止ip 以下是我到目前为止的情况: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { EventLog eventLog; eventLog = new EventLog(); e
x
尝试失败后立即阻止ip
以下是我到目前为止的情况:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
EventLog eventLog;
eventLog = new EventLog();
eventLog.Log = "Security";;
eventLog.Source = "Security-Auditing";
eventLog.MachineName = "TGSERVER";
var count = 0;
foreach (EventLogEntry log in eventLog.Entries)
{
if (count > 200)
{
return;
}
Console.Write("eventLog.Log: {0}", eventLog.Log);
count++;
}
}
没什么,但这只是个开始
我的问题是,我似乎无法隔离这些特定事件,因为我无法按eventid
或关键字
进行筛选,或者至少我看不到一种方法
我的目标是获得那些糟糕尝试的ip
有人有什么建议吗?
EventLogEntry
包含EventID
属性。但是要小心,因为EventID
现在是obsolote。请阅读中的备注部分。据我所知,EventID显示在windows eventviewer(eventvwr.msc)中,但在eventlog文件(.evtx)中,事件存储在InstanceId
中,为什么不能按EventID
或关键字
进行过滤?在eventlog中,它没有给我这个选项。我还缺少其他方法吗?@ErocMEventLogEntry
包含EventID
属性。这很有效。。。你应该把它作为一个答案,这样我就可以给你评分了。根据InstanceID文档,“EventID属性等于InstanceID,上面两位被屏蔽了。”既然如此,你可以测试InstanceID的事件ID,如下所示:bool isDesiredEvent=(eventLogEntry.InstanceID&0x3fffff)==所需的公开信息