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

[Codepost] - tor switch with php

Discussion in 'PHP & Perl' started by joesomebody, Jan 20, 2009.

  1. joesomebody

    joesomebody Registered Member

    Joined:
    Jan 31, 2008
    Messages:
    78
    Likes Received:
    19
    Home Page:
    I found this somewhere, and it's really worked wonders for me. Include it and call
    Code:
    tor_new_identity('127.0.0.01', '9051');
    for a new tor identity.

    Code:
    <?php
    
    /**
    * Switch TOR to a new identity.
    **/
    function tor_new_identity($tor_ip='127.0.0.1', $control_port='9051', $auth_code=''){
    $fp = fsockopen($tor_ip, $control_port, $errno, $errstr, 30);
    if (!$fp) return false; //can't connect to the control port
     
    fputs($fp, "AUTHENTICATE $auth_code\r\n");
    $response = fread($fp, 1024);
    list($code, $text) = explode(' ', $response, 2);
    if ($code != '250') return false; //authentication failed
     
    //send the request to for new identity
    fputs($fp, "signal NEWNYM\r\n");
    $response = fread($fp, 1024);
    list($code, $text) = explode(' ', $response, 2);
    if ($code != '250') return false; //signal failed
     
    fclose($fp);
    return true;
    }
     
    /**
    * Load the TOR's "magic cookie" from a file and encode it in hexadecimal.
    **/
    function tor_get_cookie($filename){
    $cookie = file_get_contents($filename);
    //convert the cookie to hexadecimal
    $hex = '';
    for ($i=0;$i<strlen($cookie);$i++){
    $h = dechex(ord($cookie[$i]));
    $hex .= str_pad($h, 2, '0', STR_PAD_LEFT);
    }
    return strtoupper($hex);
    }
    
    ?>