1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[GET] Script For Searching For Aged PR Domains

Discussion in 'PHP & Perl' started by laetus, Jul 26, 2009.

Tags:
  1. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    Hi guys!

    This is a demo script for searching for expiring aged PR domain. I've wrote this script todays morning and this works fine for me. This stuff contains just basic functionality and need to be improved to help a lot in PR domains research. If any of you interested in a full version of this script - please, let me know.

    Here is the stuff:
    PHP:
    <?php

    define
    ('GMAG'0xE6359A60);

    function 
    nooverflow($a)
    {
        while (
    $a < -2147483648) {
            
    $a += 2147483648 2147483648;
        }

        while (
    $a 2147483647) {
            
    $a -= 2147483648 2147483648;
        }

        return 
    $a;
    }

    function 
    zeroFill($x$bits)
    {
        if (
    $bits == 0) {
           return 
    $x;
        }

        if (
    $bits == 32) {
            return 
    0;
        }

        
    $y = ($x 0x7FFFFFFF) >> $bits;

        if (
    0x80000000 $x) {
           
    $y |= (<< (31 $bits));
        }

        return 
    $y;
    }

    function 
    mix($a$b$c)
    {
        
    $a = (int) $a;
        
    $b = (int) $b;
        
    $c = (int) $c;

        
    $a -= $b$a -= $c$a nooverflow($a); $a ^= (zeroFill($c13));
        
    $b -= $c$b -= $a$b nooverflow($b); $b ^= ($a << 8);
        
    $c -= $a$c -= $b$c nooverflow($c); $c ^= (zeroFill($b13));
        
    $a -= $b$a -= $c$a nooverflow($a); $a ^= (zeroFill($c12));
        
    $b -= $c$b -= $a$b nooverflow($b); $b ^= ($a << 16);
        
    $c -= $a$c -= $b$c nooverflow($c); $c ^= (zeroFill($b5));
        
    $a -= $b$a -= $c$a nooverflow($a); $a ^= (zeroFill($c3));
        
    $b -= $c$b -= $a$b nooverflow($b); $b ^= ($a << 10);
        
    $c -= $a$c -= $b$c nooverflow($c); $c ^= (zeroFill($b15));

        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] << 8) + ($url[$k 2] << 16) + ($url[$k 3] << 24));
            
    $b += ($url[$k 4] + ($url[$k 5] << 8) + ($url[$k 6] << 16) + ($url[$k 7] << 24));
            
    $c += ($url[$k 8] + ($url[$k 9] << 8) + ($url[$k 10] << 16) + ($url[$k 11] << 24));
            
    $mix mix($a$b$c);
            
    $a $mix[0]; $b $mix[1]; $c $mix[2];
            
    $k += 12;
            
    $len -= 12;
        }

        
    $c += $length;

        switch (
    $len) {
            case 
    11$c += ($url[$k 10] << 24);
            case 
    10$c += ($url[$k 9] << 16);
            case 
    $c += ($url[$k 8] << 8);
            case 
    $b += ($url[$k 7] << 24);
            case 
    $b += ($url[$k 6] << 16);
            case 
    $b += ($url[$k 5] << 8);
            case 
    $b += ($url[$k 4]);
            case 
    $a += ($url[$k 3] << 24);
            case 
    $a += ($url[$k 2] << 16);
            case 
    $a += ($url[$k 1] << 8);
            case 
    $a += ($url[$k 0]);
        }

        
    $mix mix($a$b$c);

        return 
    $mix[2];
    }

    function 
    strord($string)
    {
        
    $result null;

        for (
    $i 0$i strlen($string); $i++) {
            
    $result[$i] = ord($string{$i});
        }

        return 
    $result;
    }

    function 
    getPageRank($aUrl)
    {
        
    $url 'info:'.$aUrl;
        
    $ch GCH(strord($url));
        
    $url 'info:'.urlencode($aUrl);

        
    $pr_str fetch("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");

        return 
    substr($pr_strstrrpos($pr_str':') + 1);
    }

    function 
    fetch($url)
    {
        
    $response false;

        
    $curlHandler curl_init($url);

        
    curl_setopt($curlHandlerCURLOPT_RETURNTRANSFER1);
        
    $response curl_exec($curlHandler);
        
    curl_close($curlHandler);

        return 
    $response;
    }

    set_time_limit(0);

    if (
    $xml simplexml_load_file('http://www.name.com/rss/expired_domains.xml.php''SimpleXMLElement'LIBXML_NOCDATA)) {

        echo 
    '<table border="1" cellpadding="2" cellspacing="0" align="center">'."\n";
        echo 
    '<tr>
        <th>Domain</th>
        <th>PR</th>
        <th>Expired</th>
        <th>Current price</th>
        <th>Buy link</th>
    </tr>'
    ."\n";

        foreach (
    $xml->xpath('/rss/channel/item') as $item) {
            if (!empty(
    $item->title)) {
                
    $domain $item->title;
                
    $pr trim(getPageRank($domain));

                if (!empty(
    $pr)) {
                    
    $expireGMTTime strtotime($item->pubDate);
                    
    $nowGMTTime gmdate('U'time());

                    
    $daysLeft = ($expireGMTTime $nowGMTTime) / 86400;

                    
    $price = ((<= $daysLeft) ? 29.95 : ((<= $daysLeft) ? 24.95 : ((<= $daysLeft) ? 19.95 9.95)));

                    echo 
    "<tr>
        <td>
    $domain</td>
        <td>
    $pr</td>
        <td>
    {$item->pubDate}</td>
        <td>\$
    $price</td>
        <td><a href=\"
    {$item->link}\" target=\"_blank\">Buy now</a></td>
    </tr>\n"
    ;
                    
    flush();
                }
            }
        }

        echo 
    '</table>';
    }
    Enjoy!
     
    • Thanks Thanks x 10
  2. tehmadcracker

    tehmadcracker BANNED BANNED

    Joined:
    Apr 19, 2009
    Messages:
    155
    Likes Received:
    502
    I would like to run a full copy of this
     
  3. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    I'm working on the full version, just do have my own list of improvements and would like to hear your suggestions.
    Thanks!
     
  4. darkmagic

    darkmagic Newbie

    Joined:
    Jan 13, 2009
    Messages:
    1
    Likes Received:
    9
    Full version ?
    I want to try it :D
     
  5. rjj4181

    rjj4181 Newbie

    Joined:
    Sep 13, 2008
    Messages:
    23
    Likes Received:
    18
    I would be interested in something like this most delinitely.
     
  6. madmonk

    madmonk Newbie

    Joined:
    Mar 11, 2009
    Messages:
    10
    Likes Received:
    1
    Yes, me too. I want to try the full version. Thanks
     
  7. MirniPobjednik

    MirniPobjednik Registered Member

    Joined:
    Mar 12, 2009
    Messages:
    58
    Likes Received:
    10
    what if 2 people choose buy now and domain expires?
     
  8. PinkPanther

    PinkPanther Newbie

    Joined:
    Jan 4, 2008
    Messages:
    31
    Likes Received:
    118
    Yep me too
     
  9. eaglefest

    eaglefest Newbie

    Joined:
    Jan 29, 2008
    Messages:
    35
    Likes Received:
    45
    I would also like to run a full copy of your script
     
  10. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    That guy who will be the really first will win :)
     
  11. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    Ok guys I'll try to explain you some details about the full version. This script uses RSS feed of name.com to get the list of expiring domains and just collect info about PR to filter out domains having PR=0. In the full version of this script just some useful filters will be added, such as overall domain age, Alexa Rank, etc... But quantity of avaliable domains will remain the same. This list updates every day.

    I'm also guess what the cron-running version of this script will be useful. I.e. you should once set up the cron job and give the script some rules about domain you wish to get (such as PR, age, KW, etc...) and script will monitor list for the items you want to get. Once this item will be found you'll get an email notification immediately.

    If you'd like to see some addtional functions in this script - feel free to post your suggestions here (or just PM me)

    Thanks!
     
  12. allfreetodo

    allfreetodo Registered Member

    Joined:
    Jan 9, 2008
    Messages:
    66
    Likes Received:
    16
    where is this script pulling its information from?
     
  13. tanay46

    tanay46 Registered Member

    Joined:
    Jun 1, 2009
    Messages:
    91
    Likes Received:
    88
    Hey, I'd love to try the full version.
     
  14. kent_cm

    kent_cm Newbie

    Joined:
    Nov 28, 2008
    Messages:
    9
    Likes Received:
    0
    Location:
    TH
    Home Page:
    How do I get Full version ??
     
  15. drmikarin72

    drmikarin72 Registered Member

    Joined:
    Jan 25, 2009
    Messages:
    96
    Likes Received:
    16
    name.com
     
  16. easy

    easy Junior Member

    Joined:
    Jun 20, 2007
    Messages:
    146
    Likes Received:
    252
    Occupation:
    Millionnaire
    Location:
    Starbucks
    I'd like to know if the domain...

    Is registered on DMOZ
    Has existing backlinks (and how many)
    Is present in the GoBackMachine

    Also I'd love to get an instant notification of available domains via Twitter DM
     
    • Thanks Thanks x 1
  17. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    Thank you bro for these reasonable suggestions!
     
  18. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    Full version still under construction bro :)
     
  19. gileakh

    gileakh Registered Member

    Joined:
    Nov 6, 2008
    Messages:
    81
    Likes Received:
    30
    Full version for me if you don't mind, do I have to PM you ? or you'll posted here openly?

    best rgds
     
  20. laetus

    laetus Registered Member

    Joined:
    Apr 4, 2009
    Messages:
    87
    Likes Received:
    80
    Occupation:
    Professional Web development
    I'm planning to run the beta of this app on my hosting and will give access (login/pass) to each who interested. If application will be useful then maybe I'll develop a commercial standalone version or paid webservice. I have some ideas about ways of using this application which could be interesting ;)