2012-03-07 57 views
0

我正在嘗試從失敗的登錄嘗試生成的審覈失敗事件中讀取數據。我可以得到我需要的事件,但我無法弄清楚如何從事件中真正獲取IP地址。如何使用C#在事件查看器中從失敗的登錄事件中讀取IP地址?

爲了澄清,我希望看到由用戶失敗的Windows登錄嘗試生成的事件。看起來這在XML鑑於事件日誌

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
    <System> 
     <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" /> 
     <EventID>4625</EventID> 
     ... 
    </System> 
    <EventData> 
     ... 
     <Data Name="IpAddress">xxx.xxx.171.130</Data> 
     <Data Name="IpPort">50717</Data> 
    </EventData> 
</Event> 
+1

當您在事件查看器的用戶界面中檢查事件時,您能看到IP地址嗎? – phoog 2012-03-07 19:42:59

+2

登錄是如何工作的? – Fore 2012-03-07 19:47:24

+0

是的IP地址就在那裏。這只是通過RDC進行的登錄嘗試。 – AnthonyM 2012-03-07 20:06:36

回答

0

由於ordag張貼在上面的問題評論跟帖參考看到這個,我想要的信息是ReplacementStrings陣列英寸

報價:

如果你有EventLogEntrys,地址應該是 ReplacementStrings數組屬性的成員。

0

在ASP.NET中使用:

Request.ServerVariables["REMOTE_ADDR"]; 
+2

您可以以ASP服務器變量的形式訪問Windows事件日誌嗎? – 2012-03-07 20:11:10

+0

可能不是,我只是回答了我所想的問題。那時候我可能已經是asp.net了。現在它看起來不像ASP.NET;) – f2lollpll 2012-03-07 20:17:46

0

如果您通過更換兩個字節那麼就使用XML或正則表達式發帖時隱瞞了實際的IP地址讀它,但如果它是完全按照您發佈的評論:

<Data Name="IpAddress">xxx.xxx.171.130</Data> 

然後不,你不能從事件日誌,但如果你是幸運的,並在小型網絡中只有一個部分,那麼你可以弄明白。例如,如果您在一個小型網絡中,您知道只有一個網段可以將其合併到您的程序邏輯中,如您的示例...171.130,如果您知道您的網絡的地址範圍爲192.168.171.1 -192.168.171.254那麼你可以100%確定它來自於192.168.17.130,另一方面,如果你知道有一些其他網絡在172.21.171.1-172.21.171.254範圍內,那麼你贏了不知道,除非你確定地知道,其他部分不能與你的電腦通話,你通常可以請你的網絡人員找出答案。

,爲IP和子網計算http://www.subnet-calculator.com/subnet.php?net_class=C

相關問題