예제 #1
0
    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);
print_r($descriptor);
$tc->quit();