2014-12-06 3 views
0
require 'net/telnet' 

localhost = Net::Telnet::new("Host" => "localhost", "Port" => "9151", "Timeout" => 10, "Prompt" => /250 OK\n/) 
localhost.cmd('AUTHENTICATE hi') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" } 
localhost.cmd('signal NEWNYM') { |c| print c; throw "Cannot switch Tor to new route" if c != "250 OK\n" } 
localhost.close 

Ruby 스크립트를 사용하여 Tor를 실행하는 중에 새로운 신원을 얻으려고 시도하는 코드는이 대답에서 가져옵니다 : https://stackoverflow.com/a/6882744/3192470. 내가 토르 - 번들을 사용하기 때문에Tor에서 Ruby 스크립트의 새로운 ID를 얻으십시오.

포트9151입니다.
암호를 해시로 만들려면 tor --hash-password hi을 터미널에 썼습니다.이 때 16:970D11D59DCAC06E6075BED460511460C1EFD9CECDBB3C96A59298422A이 나에게 반환되었습니다.
나는 HashedControlPassword 16:970D11D59DCAC06E6075BED460511460C1EFD9CECDBB3C96A59298422Atorrc 파일에이 줄이있다.

루비 스크립트를 실행할 때 uncaught throw "Cannot authenticate to Tor" 예외가 발생합니다.

답변

1

당신은 큰 따옴표로 암호를 추가해야한다

입니다
localhost.cmd('AUTHENTICATE "hi"') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" } 

이 암호는 tor --hash-password hi와 해시하지만, 큰 따옴표에 넣어 것입니다.