我目前正在使用Perl版本的DDoS Deflate脚本,该脚本解析netstat
所连接的IP总数,以便应用IP禁止规则。
目前,脚本正在使用此正则表达式解析netstat
:
my %active_conns_by_ip = ( );
for my $line ( split /^/, `netstat -ntu --protocol=inet` ) {
if ( $line =~ /^\S+\s+\S+\s+\S+\s+\S+\s+(\S+):\S+/i ) {
my $ip = $1;
(请参阅nestat -ntu --protocol=inet
here的示例输出。)
基本上我想要实现的是脚本正则表达式的更改,它将解析以下命令中的$ip
:
ngrep -il -d eth0 -W byline "x-forwarded-for" "port 80" | grep -i x-forwarded-for
ngrep
的输出格式如下:
X-Forwarded-For: 46.166.xx.xx
X-Forwarded-For: 78.143.xx.xx
答案 0 :(得分:3)
以下应该这样做:
if ( $line =~ /^X-Forwarded-For:\s+(\d+\.\d+\.\d+\.\d+)/i ) {
my $ip = $1;
}