Regex 用于在Apache访问日志文件中隔离Comcast IP地址的正则表达式

Regex 用于在Apache访问日志文件中隔离Comcast IP地址的正则表达式,regex,Regex,实际上,我想在Apache访问日志文件中使用它的事实是任意的和无关的,但它为这种情况提供了上下文 我需要过滤掉与康卡斯特IP地址相关的记录。这是康卡斯特指派的。我需要一个正则表达式,可以匹配所有这些,并且只有这些。同时,我会自己解决这个问题,但我想会有一些正则表达式大师在那里,他们会喜欢这个问题。正则表达式解决方案是可能的,但非常麻烦,因为子网掩码不是8的倍数。您需要编写一个函数来处理列表并将其转换为正则表达式 最好使用正则表达式获取IP地址,并根据Comcast的IP地址列表测试IP地址。简单

实际上,我想在Apache访问日志文件中使用它的事实是任意的和无关的,但它为这种情况提供了上下文


我需要过滤掉与康卡斯特IP地址相关的记录。这是康卡斯特指派的。我需要一个正则表达式,可以匹配所有这些,并且只有这些。同时,我会自己解决这个问题,但我想会有一些正则表达式大师在那里,他们会喜欢这个问题。

正则表达式解决方案是可能的,但非常麻烦,因为子网掩码不是8的倍数。您需要编写一个函数来处理列表并将其转换为正则表达式


最好使用正则表达式获取IP地址,并根据Comcast的IP地址列表测试IP地址。简单的实现是一个集合,它允许您搜索小于参数的最近数字。

正则表达式解决方案是可能的,但非常麻烦,因为子网掩码不是8的倍数。您需要编写一个函数来处理列表并将其转换为正则表达式


最好使用正则表达式获取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进行匹配。

这些都是大量的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进行匹配的回调中。

我并不擅长regexps,我对它们有基本的了解,可以使用它们让Apache重写正常工作。我能弄明白,这只需要时间,而且这似乎是一个有趣的问题,对于以后搜索它的其他人来说可能是有用的信息。我不擅长正则表达式,我对它们有基本的了解,我可以使用它们来让Apache重写工作起来。我能弄明白,这需要时间,而且这似乎是一个有趣的问题,可能对以后搜索它的其他人很有用。