1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

老鬼真可怜…… CH 的 Google PR 和 Alexa Rank 都查不了了……

本帖由 沙滩凉鞋2006-04-25 发布。版面名称:网站运营

  1. 沙滩凉鞋

    沙滩凉鞋 New Member

    注册:
    2005-09-06
    帖子:
    1,211
    赞:
    5
    瞧我 Blog 上的……
    直接模仿 Toolbar 获取两个排名值……
    然后缓存入文件……
    每天自动更新一次……
    舒坦……

    正在写教程,
    待会放出源码……

    :p
     
  2. amt

    amt New Member

    注册:
    2005-12-13
    帖子:
    8,582
    赞:
    67
    期待
     
  3. Kevin

    Kevin New Member

    注册:
    2005-10-23
    帖子:
    12,728
    赞:
    55
    顶一下!
     
  4. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    服务器被封了
     
  5. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    精华准备。
     
  6. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    放源码也不能在ch服务器上用。:(
    服务器被封ip了
     
  7. 沙滩凉鞋

    沙滩凉鞋 New Member

    注册:
    2005-09-06
    帖子:
    1,211
    赞:
    5
    原来是老鬼的人品问题
    我错怪老鬼了
     
  8. 沙滩凉鞋

    沙滩凉鞋 New Member

    注册:
    2005-09-06
    帖子:
    1,211
    赞:
    5
    发程序了……
    详细教程请看:
    http://www.quchao.com/?p=64

    PHP:
    define('GMAG'0xE6359A60);
     
    // url get method macro.
    define('G_PR_GET_TYPE_FILE'1); // use fopen() function
    define('G_PR_GET_TYPE_SOCKET'2); // use standard fsocketopen function
     
    // rank type.
    define('RANK_TYPE_GOOGLE'1); // get google page rank
    define('RANK_TYPE_ALEXA'2); // get alexa rank
     
    // main function to be called
    function getRank($_url='www.quchao.com'$ranktype=RANK_TYPE_GOOGLE,$gettype=G_PR_GET_TYPE_SOCKET){
     if(
    $ranktype == RANK_TYPE_GOOGLE) {
      
    $url 'info:'.$_url;
      
    $ch GCH(strord($url));
      
    $url='info:'.urlencode($_url);
      
    $googlePRUrl "http://www.google.com/search?client=navclient-auto&ch=6"
              
    .$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".$url;
      
    $pr_str retrieveURLContent($googlePRUrl,$gettype);
      if(
    $pr_str) {
       return 
    intval(substr($pr_str,strrpos($pr_str":")+1));
      } else {
       return 
    0;
      }
     } elseif (
    $ranktype == RANK_TYPE_ALEXA) {
      
    $url=urlencode($_url);
      
    $alexaRankUrl "http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw%3D20%26wid%3D12206%26act%3D00000000000%26ss%3D1680x16t%3D0%26ttl%3D35371%26vis%3D1%26rq%3D4&url=;
      
    $result = retrieveURLContent($alexaRankUrl,$gettype);
      if (preg_match('/REACH RANK=\"(\d+)\"/', 
    $result$match)) {
       return intval(
    $match[1]);
      } else {
       return 0;
      }
     } else {
      return 0;
     }
    }
     
    //unsigned shift right
    function zeroFill(
    $a$b){
        
    $z = hexdec(80000000);
        if (
    $z & $a){
            
    $a = ($a>>1);
            
    $a &= (~$z);
            
    $a |= 0x40000000;
            
    $a = ($a>>($b-1));
        }
        else{
            
    $a = ($a>>$b);
        }
        return 
    $a;
    }
    function mix(
    $a,$b,$c){
        
    $a -= $b$a -= $c$a ^= (zeroFill($c,13));
        
    $b -= $c$b -= $a$b ^= ($a< &lt;8);
        
    $c -= $a$c -= $b$c ^= (zeroFill($b,13));
        
    $a -= $b$a -= $c$a ^= (zeroFill($c,12));
        
    $b -= $c$b -= $a$b ^= ($a<&lt;16);
        
    $c -= $a$c -= $b$c ^= (zeroFill($b,5));
        
    $a -= $b$a -= $c$a ^= (zeroFill($c,3));
        
    $b -= $c$b -= $a$b ^= ($a<&lt;10);
        
    $c -= $a$c -= $b$c ^= (zeroFill($b,15));
     
        return array(
    $a,$b,$c);
    }
     
    function GCH(
    $url$length=null, $init=GMAG){
        if(is_null(
    $length)) {
            
    $length = sizeof($url);
        }
        
    $a = $b = 0x9E3779B9;
        
    $c = $init;
        
    $k = 0;
        
    $len = $length;
        while(
    $len >= 12) {
            
    $a += ($url[$k+0] + ($url[$k+1]< &lt;8) +
                       (
    $url[$k+2]<&lt;16) + ($url[$k+3]<&lt;24));
            
    $b += ($url[$k+4] + ($url[$k+5]<&lt;8) +
                       (
    $url[$k+6]<&lt;16) + ($url[$k+7]<&lt;24));
            
    $c += ($url[$k+8] + ($url[$k+9]<&lt;8) +
                       (
    $url[$k+10]<&lt;16) + ($url[$k+11]<&lt;24));
            
    $mix = mix($a,$b,$c);
            
    $a = $mix[0]$b = $mix[1]$c = $mix[2];
            
    $k += 12;
            
    $len -= 12;
        }
     
        
    $c += $length;
        /* all the case statements fall through */
        switch(
    $len){
            case 11: 
    $c+=($url[$k+10]<&lt;24);
            case 10: 
    $c+=($url[$k+9]<&lt;16);
            case 9 : 
    $c+=($url[$k+8]<&lt;8);
            /* the first byte of c is reserved for the length */
            case 8 : 
    $b+=($url[$k+7]<&lt;24);
            case 7 : 
    $b+=($url[$k+6]<&lt;16);
            case 6 : 
    $b+=($url[$k+5]<&lt;8);
            case 5 : 
    $b+=($url[$k+4]);
            case 4 : 
    $a+=($url[$k+3]<&lt;24);
            case 3 : 
    $a+=($url[$k+2]<&lt;16);
            case 2 : 
    $a+=($url[$k+1]<&lt;8);
            case 1 : 
    $a+=($url[$k+0]);
            /* case 0: nothing left to add */
        }
        
    $mix = mix($a,$b,$c);
        /*------------ report the result */
        return 
    $mix[2];
    }
     
    // converts a string into an array of integers
    // containing the numeric value of the char
    function strord(
    $string){
        for(
    $i=0;$i         $result[$i] = ord($string{$i});
        }
        return 
    $result;
    }
     
    // return url page content or false if failed.
    function retrieveURLContent(
    $url,$gettype){
        switch(
    $gettype){
            case G_PR_GET_TYPE_FILE:
                return retrieveURLContentByFile(
    $url);
                break;
            default:
                return retrieveURLContentBySocket(
    $url);
                break;
        }
    }
     
    function retrieveURLContentByFile(
    $url){
        
    $fd = @fopen($url,"r");
        if(!
    $fd){
            return false;
        }
        
    $result = "";
        while(
    $buffer = fgets($fd, 4096)) {
          
    $result .= $buffer;
        }
        fclose(
    $fd);
        return 
    $result;
    }
     
    function retrieveURLContentBySocket(
    $url,$host="",$port=80,$timeout=30){
        if(
    $host == ""){
            if(!(
    $pos = strpos($url,'://'))){
                return false;
            }
            
    $host = substr($url,$pos+3,strpos($url,'/',$pos+3) - $pos - 3);
            
    $uri = substr($url,strpos($url,'/',$pos+3));
        }
        else{
            
    $uri = $url;
        }
     
        
    $request = "GET ".$uri." HTTP/1.0\r\n"
                   ."
    Host".$host."\r\n"
                   ."
    Accept: */*\r\n"
                   ."User-Agent: ZealGet\r\n"
                   ."\r\n";
        $sHnd = @fsockopen ($host, $port, $errno, $errstr, $timeout);
        if(!$sHnd){
            return false;
        }
     
        @fputs ($sHnd, $request);
       
        // Get source
        $result = "";
        while (!feof($sHnd)){
            $result .= fgets($sHnd,4096);
        }
        fclose($sHnd);
       
        $headerend = strpos($result,"\r\n\r\n");
        if (is_bool($headerend))
        {
            return $result;
        }
        else{
            return substr($result,$headerend+4);
        }
    }
     
  9. sluke

    sluke New Member

    注册:
    2005-09-04
    帖子:
    4,550
    赞:
    13
    我想要沙滩博客的风格
     
  10. 沙滩凉鞋

    沙滩凉鞋 New Member

    注册:
    2005-09-06
    帖子:
    1,211
    赞:
    5
    不给……
    :p

    不准盗哦……
     
  11. sluke

    sluke New Member

    注册:
    2005-09-04
    帖子:
    4,550
    赞:
    13
    要盗早就下手了
     
  12. jeminy

    jeminy Member

    注册:
    2005-09-27
    帖子:
    975
    赞:
    13
    好东西。。沙滩的东西就是好
     
  13. 相当

    相当 New Member

    注册:
    2006-03-28
    帖子:
    9,431
    赞:
    42
    呵呵好玩
     
  14. kamsang

    kamsang New Member

    注册:
    2005-10-05
    帖子:
    9,080
    赞:
    58
    靠..沙滩天天躲在被窝里研究...
     
  15. 沙滩凉鞋

    沙滩凉鞋 New Member

    注册:
    2005-09-06
    帖子:
    1,211
    赞:
    5
    明明是躲在女人温暖又柔软的…………
    …………
    …………
    …………
    …………
    …………
    …………
    …………
    枕头……
    …………
    …………
    …………
    …………
    …………
    …………
    …………
    上……