簡體   English   中英

用於隔離Apache訪問日志文件中的Comcast IP地址的正則表達式

[英]Regular expression for isolating Comcast IP addresses in access log file for Apache

實際上,我想對我的Apache訪問日志文件使用此事實是任意的和無關緊要的,但是它為情況提供了背景信息。

我需要過濾出與Comcast IP地址關聯的記錄。 這是Comcast分配的動態IP地址范圍列表 我需要一個可以匹配所有且僅那些匹配的正則表達式。 同時,我將自己進行處理,但是我認為在SO上會有一些RegEx專家可以解決這個問題。

正則表達式解決方案是可能的,但是非常麻煩,因為子網掩碼不是8的倍數。您將需要編寫一個函數來處理列表並將其轉換為正則表達式。

最好使用regex來獲取IP地址並通過Comcast對IP地址列表中的IP地址進行測試。 一個簡單的實現就是一個集合,它允許您搜索小於參數的最接近的數字。

那是很多IP地址。

例如, 24.0.0.0/12定義IP范圍24.0.0.1 - 24.15.255.255 要將這些數字范圍與正則表達式匹配

24:    24
0-15:  [0-9]|1[0-5]
0-255: [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]

這使

(24)\.([0-9]|1[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])

那僅是24.0.0.0/12和293。

如果您確實想這樣做,則應編寫一個小腳本,以將每個IP范圍自動轉換為正則表達式。

另一種方法是匹配任何IP地址,並將其輸入到使用適當的模塊/框架/ API進行匹配的回調中。

暫無
暫無

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

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