2011-03-31 71 views
-1
foreach my $subfile(glob "*:*") 

    { 
      print "opening $subfile\n"; 
      push(@files,File::Tail->new(name=>"$subfile",debug=>$debug)); 
    } 
    while (1) 
    { 
      ($nfound,$timeleft,@pending)= File::Tail::select(undef,undef,undef,$timeout,@files); 
      unless ($nfound) 
      { 
       # timeout - do something else here, if you need to 
      } 
      else 
      { 
        foreach (@pending) 
        { 
          print $_->{"input"}." (".localtime(time).") ".$_-> read; 
        } 
      } 
    } 

什麼@pending行爲?如果結果顯示如下...文件::尾::選擇什麼@pending行爲

 
TCP:34628-80 (Wed Mar 30 01:49:57 2011) 03/30-01:49:50.607858 119.40.116.196:80 -> 192.168.242.133:34628 
TCP:34628-80 (Wed Mar 30 01:49:57 2011) TCP TTL:128 TOS:0x0 ID:34869 IpLen:20 DgmLen:40 
TCP:34629-80 (Wed Mar 30 01:49:57 2011) 03/30-01:49:51.309716 119.40.116.196:80 -> 192.168.242.133:34629 
UDP:41415-53 (Wed Mar 30 01:49:57 2011) 03/30-01:49:47.220999 192.168.242.2:53 -> 192.168.242.133:41415 
UDP:44705-53 (Wed Mar 30 01:49:57 2011) 03/30-01:49:47.427011 192.168.242.2:53 -> 192.168.242.133:44705 
UDP:50539-53 (Wed Mar 30 01:49:57 2011) 03/30-01:49:47.213455 192.168.242.2:53 -> 192.168.242.133:50539 
TCP:34628-80 (Wed Mar 30 01:49:57 2011) ***AP**F Seq: 0x2F3E700A Ack: 0x2359814F Win: 0xFAF0 TcpLen: 20 
TCP:34629-80 (Wed Mar 30 01:49:57 2011) TCP TTL:128 TOS:0x0 ID:34871 IpLen:20 DgmLen:40 
UDP:41415-53 (Wed Mar 30 01:49:57 2011) UDP TTL:128 TOS:0x0 ID:34859 IpLen:20 DgmLen:65 
UDP:44705-53 (Wed Mar 30 01:49:57 2011) UDP TTL:128 TOS:0x0 ID:34861 IpLen:20 DgmLen:153 
UDP:50539-53 (Wed Mar 30 01:49:57 2011) UDP TTL:128 TOS:0x0 ID:34857 IpLen:20 DgmLen:179 
TCP:34628-80 (Wed Mar 30 01:49:57 2011) =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 
TCP:34629-80 (Wed Mar 30 01:49:57 2011) ***AP**F Seq: 0x9D70418 Ack: 0x248089DB Win: 0xFAF0 TcpLen: 20 
UDP:41415-53 (Wed Mar 30 01:49:57 2011) Len: 37 
UDP:44705-53 (Wed Mar 30 01:49:57 2011) Len: 125 
UDP:50539-53 (Wed Mar 30 01:49:57 2011) Len: 151 
TCP:34628-80 (Wed Mar 30 01:49:57 2011) 
TCP:34629-80 (Wed Mar 30 01:49:57 2011) =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 

不是@pending將存儲如何修改代碼以僅檢索IP地址?在我看來,我認爲我可以使用split()將單詞劃分爲單詞..任何人都可以給我一些例子

回答

0

正則表達式是獲取IP地址的最簡單方法:

if (/([.\d]+):\d -> ([.\d]+):\d/) { 
    # ipaddress 1 will be in $1, and ip address 2 will be in $2 
} 
0

在/ usr/local/bin中/ perl的

使用文件::尾!;

chdir(「/ var/log/snort」);

的foreach我的$ FOL(水珠 「。*。*」) {

print "Opening $fol\n"; 

    chdir("/var/log/snort/$fol"); 

    foreach my $subfile(glob "*:*") 
    { 

      print "opening $subfile\n"; 

      push(@files,File::Tail->new(name=>"$subfile",debug=>$debug)); 
    } 

    while (1) 
    { 
      ($nfound,$timeleft,@pending)= File::Tail::select(undef,undef,undef,$timeout,@files); 
      unless ($nfound) 
      { 
        print "Nothing to print \n"; 
      } 
      else 

的foreach(@pending) { 如果(/(+)[\ d]:\ d - >(+ [\ d]):\ d /) {

        print $_->{"input"}." (".localtime(time).") ".$2 -> read; 
                    } 
        } 
      } 
    } 

} 嘿傢伙我工作了這樣......這不就是正確的它似乎像什麼打印出來?

相關問題