shellでウェブサイトのpvとalexaの順位を判断します


これは友达に书いたシナリオで、cdn方面をして、よく攻撃に出会って、しかし攻撃に出会うとドメイン名を封殺することができなくて、私达は选択の判断があります.
 
これはphp値alexa値です

  
  
  
  
  1. <?php 
  2. $yuming = $argv[1]; 
  3. //  alaxe   
  4. function getAlexaRank($domain = "www.cninfo360.com"
  5. $line = ""
  6. $data = ""
  7. $url = "http://data.alexa.com/data/?cli=10&dat=snba&ver=7.0&url=".$domain; 
  8. $fp = fopen($url,"r"); 
  9. if($fp) 
  10. while(!feof($fp)) 
  11. $line = fgets($fp); 
  12. $data.= $line; 
  13.  
  14. $p = xml_parser_create(); 
  15. xml_parse_into_struct($p,$data,$vals); 
  16. xml_parser_free($p); 
  17. for($i = 0 ;$i< count($vals);$i++) 
  18. if($vals[$i]["tag"]=="POPULARITY") 
  19. return $vals[$i]["attributes"]["TEXT"]; 
  20.  
  21. echo getAlexaRank($yuming); 
  22.  
  23. ?> 

これはpvの数値を取るためのものです

  
  
  
  
  1. <?php 
  2.  
  3. // 
  4. //        
  5. // 
  6.  
  7. if(empty($argv[1])){ 
  8.         die(' '); 
  9. }else{ 
  10.         $domain = $argv[1]; 
  11.  
  12. // 
  13. //      curl  
  14. // 
  15. $ch = curl_init(); 
  16. curl_setopt($ch, CURLOPT_URL, "http://alexa.cn/api0523.php"); //? 
  17. curl_setopt($ch, CURLOPT_POST, 1); 
  18. $data['url'] = $domain; 
  19. $data['sig'] = 'd665053d27996bc7c72eff5f70d4facc'; 
  20. $data['keyt'] = '1350970374'; 
  21. curl_setopt($ch, CURLOPT_COOKIE, 'checkdom='.$domain); 
  22. curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
  23. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  24. $resp = curl_exec($ch); 
  25. curl_close($ch); 
  26.  
  27. $array_div = explode('*', $resp); 
  28. $c = count($array_div); 
  29.  
  30. // 
  31. //        
  32. // 
  33. for($i=0; $i<$c; $i++){ 
  34.         if ($i == 10 || $i == 12 || $i ==14){ 
  35.                 $m = $i + 1; 
  36.                 if($array_div[$i]!="-"){ 
  37.                         $as = intval( str_replace(',', '', $array_div[$i]) ); 
  38.                         $ax = intval( str_replace(',', '', $array_div[$m]) ); 
  39.                         echo $as*3000*$ax; 
  40.                         echo "
    "; 
  41.                 }else{ 
  42.                         echo "-";echo "
    "; 
  43.                 } 
  44.         } 

シェル判定を行う
 

  
  
  
  
  1. #!/bin/bash 
  2. digstatus=`dig $1 ns|grep IN.*NS.*.$|grep -E "ns1.appleidc.com|ns2.appleidc.com"|wc -l` 
  3. [ $digstatus -eq 0 ] && exit 
  4.  
  5. paiming=`php alexa $1` 
  6. if [ $paiming -lt 1000 ] 
  7. then 
  8. echo high 
  9. else 
  10. echo no high 
  11. fi 
  12. pv=`php pv $1` 
  13. echo "$1 pv num is $pv" 

判断してから、何をするかは、自分で書くことができます.友達はpostフォームを実行し、データベースにドメイン名にステータス値を追加します.