繁体   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