Re: [問題] IP比對

作者: lalelee (Yes We Can !)   2015-06-15 10:31:03
感謝^^ 熱心回答,
自己後來想了想用個笨方法也可以,比對到後面這個IP
if(/.*(\d+\.\d+\.\d+\.\d+)/){
... $1
}
提供之後查詢的人參考
※ 引述《flu (Crazy Rhythm)》之銘言:
: ※ 引述《lalelee (Yes We Can !)》之銘言:
: : 標題: [問題] IP比對
: : 時間: Fri Jun 12 17:43:04 2015
: : 我有一個IIS Log 大概長得像這樣:
: : 2015-06-05 05:41:36 W3SVC1 172.16.18.11 GET /Menu/index.htm - 80 -
: : 172.16.13.74 Mozill/4.0 ..... \n
: : 我用
: : while(<FILE>){
: : if($_ =~ /(\d+\.\d+\.\d+\.\d+)/g){
: : ...}
: use Regexp::Common qw[net] ;
: my $IPv4_pat = $RE{net}{IPv4} ; #預設是comma saparated Decimal 其他還有
: # Hex, Oct.. IPv6的版本也有
: if ( @matched = $_ =~ m/\b ($IPv4_pat) \b/gx) {
: .... #第二個會放在 $matched[1] 裡面
: }
: =======
: : 但都只能比對到第一個IP "172.16.18.11" ,但我希望比對到的是"172.16.13.74" 後面這
: : 個,請問要怎樣改比較好呢 ?
: : 推 herculus6502: if改成while 06/12 18:08
: 要延續在scalar context繼續處理可以考慮搭配 c modifier一起用, 就是 m/.../gc
: 這部份就是和目前比對到的 pos 比較有關係

Links booklink

Contact Us: admin [ a t ] ucptt.com