採取IP地址,並保存到文件,表或.csv只能從日誌文件以IP地址保存到只能從日誌文件文件,表或.csv
我有一個像這樣的條目日誌文件:
2010-09-13 00:00:01 69.143.116.98 - W3SVC2 STREAM 209.22.66.152 80 GET /p7pm/p7popmenu.js - 200 0 7700 379 188 .org Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.0;+WOW64;+GoogleT5;+SLCC1;+.NET+CLR+2.0.50727;+Media+Center+PC+5.0;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30618;+.NET4.0C) - .org/
Mozilla/5.0+(compatible;+Yahoo!+Slurp/3.0;+.com) - waste.html
2010-09-13 08:52:15 67.195.112.157 - W3SVC2 STREAM 209.22.66.152 80 GET /includes/Center_nav_p4.css - 304 0 164 482 0 HTTP/1.0 LOL.org Mozilla/5.0+(compatible;+Yahoo!+Slurp/3.0;+.com) - waste.html
我在想什麼是提取每個日誌條目的IP地址和保存爲一條線或行中數據庫的最佳方式。我可能會先保存到List中或類似的東西中,然後將其保存到只有ip addreses的db,csv或text文件中。
事情是這樣的:
"69.143.116.98"
"65.37.53.228"
"169.123.16.100"
"169.123.16.12"
"169.123.16.9"
"169.123.6.89"
它看起來像IP地址21號線開始這樣想我能以某種方式從那裏開始,但隨後弄清楚如何獲得IP的其餘部分。 也許像21日開始,然後抓住所有,直到我打了一個空間?
當我抓住他們所有的我會計數和排序他們,並將他們保存到最終格式。
我在正確的道路上嗎? 謝謝。
顯然我沒有在這裏得到整個任務;它似乎會變得更加困難。這是一個涉及分揀的TON;我想象的第一部分是抓住這些數據並放入某種表格,然後做這種排序,最後寫出計數,IP後排序爲csv ........
我需要解析在這個日誌文件中,這裏是需要發生的事情;它是瘋狂的:
1.)代碼將統計日誌文件中包含的IP地址所做的請求數。
2.)代碼只會計算通過HTTP標準端口發出的GET請求,並且應該從計數中排除從「207.114」開始的所有IP請求。
)應該對最終的CSV文件進行排序,以便首先列出提出最多請求的IP。
)提出請求的請求數相同的IP應該在它們之間排序,首先列出更大值的IP八位組。
)第一列應該包含請求的數量,第二列應該包含創建它們的IP地址。 SomeFromLog.csv - 實施例基於以下數據:
8中, 「69.143.116.98」
3, 「65.37.53.228」
1 「169.123.16.100」
1, 「169.123.16.12」
1, 「169.123.16.9」
1「169.12 3.6。89"
像這樣的任務,知道源數據的格式總是很重要。它看起來像來自Web服務器的日誌,你能告訴我們哪個Web服務器和什麼日誌記錄選項被設置? –
它是一個.log文件,我相信從IIS,其中每行看起來像這樣: 2010-08-12 08:52:58 63.160.106.254 - W3SVC111 STREAM 207.22.66.152 80 GET /includes/scripts.js - 304 0 164 456 0 HTTP/1.1 www.LOL.org Mozilla/4.0 +(兼容; + MSIE + 6.0; + Windows + NT + 5.1; + SV1; +。NET + CLR + 1.1.4322; +。NET + CLR + 2.0 .50727)__utma = 228961600.1845892080.1265608268.1279440521.1279522956.43 http://www.LOL.org/ 我在想,它需要以某種方式逐行閱讀並解析,以便整個事情在數據庫表中結束,以便排序可以完成/問題是;如何做那部分? – MLBdev
IIS支持3種格式的外觀和插件,以幾乎任何格式存儲日誌。但是,如果您沒有更改任何設置,則可能採用W3C擴展日誌文件格式(請參閱https://www.w3.org/TR/WD-logfile.html)。請注意,並非每一行的格式都相同,其中一些行是「指令」,用於描述其他行的結構,這些行以#開始。另外,使用配置設置,有時可能在文件中間添加或刪除列。因此,最好使用預編寫的解析器。 Yann在下面的建議似乎是一個合理的選擇。 –