В настоящее время я разрабатываю java-приложение, которое использует прокси-сервер tor, работающий на локальном хосте, для получения скрипта, отображающего IP-адрес запрашивающего.
Хотелось бы, чтобы работу делал в основном tor proxy, чтобы он работал в максимально "естественном" состоянии. Мой текущий код выглядит примерно так:
SocketAddress TorProxyAddress = new InetSocketAddress("127.0.0.1", 9050);
Proxy TorProxy = new Proxy(Proxy.Type.SOCKS, TorProxyAddress);
URL url = new URL("https://myhost.com/ip2.php");
URLConnection conn = url.openConnection(TorProxy);
// ... reading the input stream etc
Проблема, с которой я сейчас сталкиваюсь, заключается в следующем предупреждающем сообщении из консоли прокси-сервера tor:
[warn] Your application (using socks5 to port 443) is giving Tor only an IP address. Applications that do DNS resolves themselves may leak information. Consider using Socks4A (e.g. via privoxy or socat) instead. For more information, please see https://wiki.torproject.org/TheOnionRouter/TorFAQ#SOCKSAndDNS.'
Для меня это выглядит так, как будто Java разрешает IP-адрес myhost.com без моего ведома. Как уже упоминалось, мне нужно запустить прокси-сервер tor в возможно идеальной среде.
Есть ли способ предотвратить предварительное разрешение хоста java и просто передать весь URL-адрес прокси-серверу tor?
Большое спасибо за каждый ответ!