使用Java将NEWNYM发送到TOR?

时间:2017-06-07 17:52:13

标签: java htmlunit tor

任何人都知道如何通过java代码将NEWNYM信号发送到TOR?

说我有这个:

        String adress = "http://some-adress";
        WebClient webClient = new WebClient(BrowserVersion.FIREFOX_52);
        ProxyConfig proxyConfig = new ProxyConfig("127.0.0.1", 9150, true);
        webClient.getOptions().setProxyConfig(proxyConfig);

        webClient.getOptions().setJavaScriptEnabled(false);
        webClient.getOptions().setUseInsecureSSL(true);
        HtmlPage page = (HtmlPage)webClient.getPage(adress);

从技术上讲,我可以这样做来重新启动应用程序,并获得一个新的身份:

        Runtime.getRuntime().exec("C:/Users/user/Desktop/Tor Browser/Browser/firefox.exe");

        Runtime.getRuntime().exec("TASKKILL /F /IM firefox.exe");

但必须有一种方法来发送NEWNYM信号,因为以这种方式获得TOR的新身份是相当混乱的。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

HtmlUnit使用Apache HttpClient连接到服务器。

根据这个answer,您可以直接致电:

public static void torNewIP() throws Exception {
   Socket socket = new Socket();
   socket.connect(new InetSocketAddress(TOR_IP, TOR_CONTROL_PORT));
   socket.getOutputStream().write(new String("SIGNAL NEWNYM\r\n").getBytes());
   socket.close();
}
     

启用'TOR_CONTROL_PORT'后