#!/usr/bin/php -q 1){ for ($i=1;$i<$Pocet;$i++){ switch ($argv[$i]){ case '-U': if ($Pocet>$i+1){ curl_setopt($ch, CURLOPT_URL, $argv[++$i]); if ($Debug)echo "\nDEBUG: -U ".$argv[$i]; }else{ echo "ERROR in parsing argument -U: missing value"; Manual(); exit(2); } break; case '-A': if ($Pocet>$i+1){ $Agent=$argv[++$i]; if ($Debug)echo "\nDEBUG: -A ".$argv[$i]; }else{ echo "ERROR in parsing argument -A: missing value"; Manual(); exit(2); } break; case '-a': if ($Pocet>$i+1){ $authPhrase = $argv[++$i]; if ($Debug)echo "\nDEBUG: -a ".$argv[$i]; }else{ echo "ERROR in parsing argument -a: missing value\n"; Manual(); exit(2); } break; case '-T': if ($Pocet>$i+1){ $Timeout=$argv[++$i]; if ($Debug)echo "\nDEBUG: -T ".$argv[$i]; }else{ echo "ERROR in parsing argument -T: missing value"; Manual(); exit(2); } break; case '-G': if ($Pocet>$i+1){ $Grep[]=$argv[++$i]; if ($Debug)echo "\nDEBUG: -G ".$argv[$i]; }else{ echo "ERROR in parsing argument -G: missing value"; Manual(); exit(2); } break; case '-L': $ShowPage=1; if ($Debug)echo "\nDEBUG: -L"; break; case '-F': curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); if ($Debug)echo "\nDEBUG: -F"; break; case '-X': $InludePerf=0; if ($Debug)echo "\nDEBUG: -X"; break; case '-I': curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); if ($Debug)echo "\nDEBUG: -I"; break; case '-Tc': if ($Pocet>$i+1){ $Tc=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Tc ".$argv[$i]; }else{ echo "ERROR in parsing argument -Tc: missing value"; Manual(); exit(2); } break; case '-Tw': if ($Pocet>$i+1){ $Tw=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Tw ".$argv[$i]; }else{ echo "ERROR in parsing argument -Tw: missing value"; Manual(); exit(2); } break; case '-Sbc': if ($Pocet>$i+1){ $Sbc=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Sbc ".$argv[$i]; }else{ echo "ERROR in parsing argument -Sbc: missing value"; Manual(); exit(2); } break; case '-Sbw': if ($Pocet>$i+1){ $Sbw=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Sbw ".$argv[$i]; }else{ echo "ERROR in parsing argument -Sbw: missing value"; Manual(); exit(2); } break; case '-Soc': if ($Pocet>$i+1){ $Soc=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Soc ".$argv[$i]; }else{ echo "ERROR in parsing argument -Soc: missing value"; Manual(); exit(2); } break; case '-Sow': if ($Pocet>$i+1){ $Sow=$argv[++$i]; if ($Debug)echo "\nDEBUG: -Sow ".$argv[$i]; }else{ echo "ERROR in parsing argument -Sow: missing value"; Manual(); exit(2); } break; case '-S': if ($Pocet>$i+2){ $String1=$argv[++$i]; $String2=$argv[++$i]; if ($Debug)echo "\nDEBUG: -S ".$String1.' '.$String2; }else{ echo "ERROR in parsing argument -S: missing values"; Manual(); exit(2); } break; case '-O': $UseOutput=1; if ($Debug)echo "\nDEBUG: -O"; break; case '--help': case '-h': Manual(); exit(2); break; default: echo "ERROR in argument parsing: ".$argv[$i]; Manual(); exit(2); break; } } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $Agent ); curl_setopt($ch, CURLOPT_TIMEOUT, $Timeout); if(isset($authPhrase)){ curl_setopt($ch, CURLOPT_USERPWD, $authPhrase); curl_setopt($ch,CURLOPT_HTTPAUTH, CURLAUTH_ANY); } if (isset($Tc) and isset($Tw) and ($Tw >= $Tc) ){ echo "ERROR in arguments Tw ($Tw) >= Tc ($Tc) !!!"; Manual(); exit(2); } if (isset($Sbc) and isset($Sbw) and ($Sbw >= $Sbc) ){ echo "ERROR in arguments Sbw ($Sbw) >= Sbc ($Sbc) !!!"; Manual(); exit(2); } if (isset($Soc) and isset($Sow) and ($Sow >= $Soc) ){ echo "ERROR in arguments Sbw ($Sow) >= Sbc ($Soc) !!!"; Manual(); exit(2); } // EXEC $time_start = getmicrotime(); $Buff=@curl_exec($ch); $Time = round(getmicrotime() - $time_start,3); $Size=strlen($Buff); $errnum=curl_errno($ch); if ($errnum){ if ($errnum==28){ echo 'Timeout '.$Timeout.'sec exceeded.'; exit(2); }else{ echo "ERROR in opening page! Err:".curl_error($ch); exit(2); } } $reqInfo = curl_getinfo($ch); @curl_close($ch); //var_dump($reqInfo['http_code']); if($reqInfo['http_code'] != 200){ $Status=2; $Msg.="return HTTP error code ".$reqInfo['http_code']; } if (isset($Sbc) and ($Size > $Sbc)){ $Status=2; $Msg.='Size '.$Size.'B below limit '.$Sbc.'B'; }elseif (isset($Sbw) and ($Size > $Sbw)){ $Status=1; $Msg.='Size '.$Size.'B below limit '.$Sbw.'B'; } if (isset($Soc) and ($Size < $Soc)){ $Status=2; $Msg.='Size '.$Size.'B over limit '.$Soc.'B'; }elseif (isset($Sow) and ($Size < $Sow)){ $Status=1; $Msg.='Size '.$Size.'B over limit '.$Sow.'B'; } if (isset($Tc) and ($Time > $Tc)){ $Status=2; $Msg.='Download time '.$Time.'sec exceeded time limit '.$Tc.'sec'; }elseif (isset($Tw) and ($Time > $Tw)){ $Status=1; $Msg.='Download time '.$Time.'sec exceeded time limit '.$Tw.'sec'; } if (isset($Grep)){ for($i=0; $i