簡體   English   中英

如何在IIS日志中獲取最終用戶計算機名稱

[英]How to get end user Machine name in IIS logs

IIS 7.0及更高版本。 此設置中不涉及負載均衡器。 所請求的文件是一個小的間隔圖像,可以使用JQuery同步或異步加載該圖像。 該文件並不重要,它只是一種使最終用戶訪問此IIS服務器進行分析的方法。

我需要從IIS日志中捕獲訪問者的計算機名稱。 當前日志中已經有客戶端IP地址。 問題是IP在我們的環境中生存時間很短,如果我不能盡快將其解析為機器名稱,它就沒有用。 因此,我們需要幾乎實時確定的用於訪問IP的機器名稱。

有什么好的方法可以做到這一點。 這些是我找到的選項...

1)在IIS中啟用反向DNS查找-> http://www.expta.com/2010/01/how-to-enable-reverse-dns-lookup-in-iis.html 這會影響服務器的性能,我擔心這最終會保留用戶請求,並由於反向查找操作的開銷增加而導致其頁面加載速度變慢

2)編寫一個IIS日志模塊,該模塊通過查找IP並在日志中寫入計算機名稱來增強日志記錄。 >>恐怕這會因反向DNS查找而減慢最終用戶的請求處理時間並影響服務器性能。 我幾乎猜想這是我執行上面的第1點,而不是依靠Microsoft的內置功能。 最后,實時反向DNS查找將影響性能。

3)與上述第1點或第2點相同,但我將更改用戶點擊的頁面的HTML,以使用Async javascript調用(而非內聯調用)加載IIS托管的圖像文件。 這樣,最終用戶不必等待此IIS請求完成即可加載頁面的其余部分(對他們而言至關重要的內容),而無需依賴於間隔圖像請求來完成。 但是隨后,瀏覽器仍將為異步映像加載專門分配一個線程,這對於最終用戶而言仍然會影響性能。

4)只需使用默認的IIS日志記錄即可實時登錄。 讓一個單獨的C#應用​​程序每5分鍾左右讀取一次文件,檢測添加的新行,解析它們並獲取IP,進行反向查找並查找計算機名稱,然后根據要求將其記錄到數據庫或平面文件中。 不利的一面是,現在我需要實時進行大量日志記錄,因為如果我不立即記錄日志,那么到我的應用程序讀取日志,查找日志並進行反向查找時,IP可能已經分配給了另一台機器。在上面。 另外,我還必須處理讀取日志文件的復雜性,以便在先前的讀取等之后僅讀取新插入的日志條目。

5) http://www.iis.net/learn/extensions/advanced-logging-module/advanced-logging-for-iis-real-time-logging- >我猜這與上面的第2點相同,只是用VC ++而不是C#編寫。 所以我猜這種方法也有同樣的缺點

因此,那里的每種方法似乎都有缺點。 您認為解決問題的好方法是什么?

由於路由的工作方式,無法將IP轉換為計算機名稱-許多計算機可以通過同一IP到達。

如果您找到了一種將IP映射到您可以接受的計算機名稱的方法,則一種方法可能是僅讓站點提供圖像並在常規請求處理程序中進行所有必要的發現。 這樣,您可能還會獲得有關用戶的更多信息(cookie,hauthentication標頭等)。 這種方法可能比配置IIS日志記錄更加靈活。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM