public function getTopHosts($top = false) { $tmp = array(); $this->readLines(function ($line) use(&$tmp) { $host = $this->parser->hostFromLine(trim($line)); if (isset($tmp[$host])) { $tmp[$host] += 1; } else { $tmp[$host] = 1; } }); arsort($tmp); if ($top) { return array_slice($tmp, 0, $top); } return $tmp; }
public function let(VarnishLogParserInterface $parser) { $this->workDir = vfsStream::setup('workDir'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_160px.jpg'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg2.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_161px.jpg'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg3.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_162px.jpg'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg4.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_163px.jpg'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg5.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_164px.jpg'); $parser->hostFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg6.no/video/img/94949_165px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('www.vg6.no'); $parser->pathFromLine('85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg6.no/video/img/94949_165px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"')->willReturn('/video/img/94949_165px.jpg'); $data = '85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"'; $this->createFile('test', $data); $data = '85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg2.no/video/img/94949_161px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg3.no/video/img/94949_162px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg4.no/video/img/94949_163px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg5.no/video/img/94949_164px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0" 85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vg6.no/video/img/94949_165px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"'; $this->createFile('test2', $data); $this->beConstructedWith($parser); }