• 03-12-2007, 21:27:57
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar , google pagerank kontrol için paylaşımda bulunan kodların kimi hostlarda problem çıkartıp pagerank değerini -1 veya 0 orarak göstermesi üzerine ilgili kodlar derlenmiş ve yeniden yayımlanmıştı.

    32bit ve 64bit farklılıklarından dolayı problem çıkartan bu uygulamanın minik değişikliklerle daha kararlı haline getirilmiş olanını paylaşmak istiyorum.

    örnek uygulamaya buradan bakabilirsiniz DomainBank

    örnek uygulamada çalışan kodlar aşağıdadır.

    pagerank.php

    $googlehost='toolbarqueries.google.com';
    $googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';
    function StrToNum($Str, $Check, $Magic) {
        $Int32Unit = 4294967296;  // 2^32
    
        $length = strlen($Str);
        for ($i = 0; $i < $length; $i++) {
            $Check *= $Magic;     
            if ($Check >= $Int32Unit) {
                $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
                //if the check less than -2^31
                $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
            }
            $Check += ord($Str{$i}); 
        }
        return $Check;
    }
    function HashURL($String) {
        $Check1 = StrToNum($String, 0x1505, 0x21);
        $Check2 = StrToNum($String, 0, 0x1003F);
    
        $Check1 >>= 2;     
        $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
        $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
        $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);    
        
        $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
        $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
        
        return ($T1 | $T2);
    }
    function CheckHash($Hashnum) {
        $CheckByte = 0;
        $Flag = 0;
    
        $HashStr = sprintf('%u', $Hashnum) ;
        $length = strlen($HashStr);
        
        for ($i = $length - 1;  $i >= 0;  $i --) {
            $Re = $HashStr{$i};
            if (1 === ($Flag % 2)) {              
                $Re += $Re;     
                $Re = (int)($Re / 10) + ($Re % 10);
            }
            $CheckByte += $Re;
            $Flag ++;    
        }
    
        $CheckByte %= 10;
        if (0 !== $CheckByte) {
            $CheckByte = 10 - $CheckByte;
            if (1 === ($Flag % 2) ) {
                if (1 === ($CheckByte % 2)) {
                    $CheckByte += 9;
                }
                $CheckByte >>= 1;
            }
        }
    
        return '7'.$CheckByte.$HashStr;
    }
    function getch($url) { return CheckHash(HashURL($url)); }
    
    function getpr($url) {
        global $googlehost,$googleua;
        $ch = getch($url);
        $fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
        if ($fp) {
           $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
           $out .= "User-Agent: $googleua\r\n";
           $out .= "Host: $googlehost\r\n";
           $out .= "Connection: Close\r\n\r\n";
        
           fwrite($fp, $out);
           while (!feof($fp)) {
                $data = fgets($fp, 128);
                $pos = strpos($data, "Rank_");
                if($pos === false){} else{
                    $pr=substr($data, $pos + 9);
                    $pr=trim($pr);
                    $pr=str_replace("\n",'',$pr);
                    return $pr;
                }
           }
           fclose($fp);
        }
    }
    function pagerank($url,$width=40,$method='image') {
        if (!preg_match('/^(http:\/\/)?([^\/]+)/i', $url)) { $url='http://'.$url; }
        $pr=getpr($url);
        if(!$pr)
        {
            $pr=0;
        }
        $pagerank="PageRank: $pr/10";
    
        //Resim Bas
        if ($method == 'image') {
        $prpos=$width*$pr/10;
        $prneg=$width-$prpos;
        $html='<img src="http://www.domainbank.gen.tr/simgeler/pr'.$pr.'.gif" border=0 alt="'.$pagerank.'">';
        }
        //Div Class bas
        if ($method == 'style') {
        $prpercent=100*$pr/10;
        $html='<div style="position: relative; width: '.$width.'px; padding: 0; background: #D9D9D9;"><strong style="width: '.$prpercent.'%; display: block; position: relative; background: #5EAA5E; text-align: center; color: #333; height: 8px; line-height: 8px;"><span></span></strong></div>';
        }
        
        $out=''.$html.'</div>
        ';
        
        return $out;
    }
    
    if ((!isset($_POST['url'])) && (!isset($_GET['url']))) 
    { 
    echo '<div id="container">
        <form id="fm-form" method="post" action="" >
        <fieldset>
            <legend>PageRank Kontrol</legend>
        <div class="fm-opt">
          <label for="fm-eposta">Domain :</label>
          <input name="url" id="url" type="text" size="20" /> 
        </div>
       <div id="siyahlink11"><font class="gri10">sorgulamak istediğiniz domaini yazarak <b>PR Sorgula</b> tuşuna basınız.</font></div>
        </fieldset> 
    
        <fieldset>    
        <div id="fm-submit" class="fm-req">
          <input name="Submit" value="PR Sorgula" type="submit" /> </form>
        </div>
    </div>'; 
    }
    if (isset($_REQUEST['url'])) { echo pagerank($_REQUEST['url']); }
    yukarıdaki kodu pagerank.php (veya tercih ettiğiniz isimle kaydedip çalıştırın ) kolay gelsin
  • 03-12-2007, 21:44:31
    #2
    pr giflerinide versen iyi olur
  • 03-12-2007, 22:02:12
    #3
    project2007 adlı üyeden alıntı: mesajı görüntüle
    pr giflerinide versen iyi olur
    buyrun hocam

    http://www.domainbank.gen.tr/prgifler.rar
  • 03-12-2007, 22:12:39
    #4
    Teşekkürler mutlaka deniyeceğim
  • 21-10-2008, 20:06:07
    #5
    Pr gifleri download adresi calısmıyor birde bu kodları kuracagımız dosyayı nereye acalım wordpress kullanıyorum ??
  • 21-10-2008, 22:23:56
    #6
    Üyeliği durduruldu
    Demo şu an çalışmıyor...
    Yani en azından bende açılmadı

    Edit

    Denedim gayet güzel...
    Paylaşım için teşekkürler...
  • 22-10-2008, 00:23:26
    #7
    bende acılmıyor :S
  • 22-10-2008, 09:43:45
    #8
    yaklaşık olarak 10 ay önceki konuyu hoplattıgınızı düşünürsek, linklerin kırık olması doğal bence
  • 22-10-2008, 12:19:38
    #9
    Üyeliği durduruldu
    Konuların tarihine bakmayı alışkanlık haline getirsem iyi olacak