예제 #1
0
    // if descriptor found, query directory info to get flags
    $dirinfo = $tc->getInfoDirectoryStatus($descriptor->fingerprint);
    echo "== Descriptor Info ==\n" . "Nickname      : {$descriptor->nickname}\n" . "Fingerprint   : {$descriptor->fingerprint}\n" . "Running       : {$descriptor->platform}\n" . "Uptime        : " . uptimeToString($descriptor->getCurrentUptime(), false) . "\n" . "OR Address(es): " . $descriptor->ip_address . ':' . $descriptor->or_port;
    if (sizeof($descriptor->or_address) > 0) {
        echo ', ' . implode(', ', $descriptor->or_address);
    }
    echo "\n" . "Contact       : {$descriptor->contact}\n" . "BW (observed) : " . number_format($descriptor->bandwidth_observed) . " B/s\n" . "BW (average)  : " . number_format($descriptor->bandwidth_average) . " B/s\n" . "Flags         : " . implode(' ', $dirinfo->flags) . "\n\n";
} catch (ProtocolError $pe) {
    // doesn't necessarily mean the node doesn't exist
    // the controller may not have updated directory info yet
    echo $pe->getMessage() . "\n\n";
    // Unrecognized key "desc/name/drew010relay01
}
try {
    echo "Sending heartbeat signal to controller...";
    $tc->signal(ControlClient::SIGNAL_HEARTBEAT);
    // watch tor.log file for heartbeat message
    echo "OK";
} catch (ProtocolError $pe) {
    echo $pe->getMessage();
}
echo "\n\n";
$descriptor = $tc->getInfoDirectoryStatus('milesprower');
print_r($descriptor);
$temp = $tc->getInfoMicroDescriptor($descriptor->nickname);
try {
    $descriptor->country = $tc->getInfoIpToCountry($descriptor->ip_address);
} catch (ProtocolError $pe) {
    echo "Failed to get country: " . $pe->getMessage() . "\n";
}
$descriptor->combine($temp);
예제 #2
0
<?php

/**
 * Simple example showing how to send a signal to Tor to change your IP address
 */
require_once 'common.php';
use Dapphp\TorUtils\ControlClient;
$tc = new ControlClient();
try {
    $tc->connect('127.0.0.1', 9051);
    // connect to controller at 127.0.0.1:9051
    $tc->authenticate('password');
    // authenticate using hashedcontrolpassword "password"
    $tc->signal(ControlClient::SIGNAL_NEWNYM);
    // send signal to change IP
    echo "Signal sent - IP changed successfully!\n";
} catch (\Exception $ex) {
    echo "Signal failed: " . $ex->getMessage() . "\n";
}