隠しサービスへのソケット接続をTORネットワークに実装しようとしています。隠しサービスのオニオンドメインホスト名があります。Orbot をデバイスにインストールしました。プロキシ Orbot を使用して非表示のサービスに接続するためのソケットを作成します。私はこのようにしました:
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(
"localhost", 9050));
clientSocket = new Socket(proxy);
InetSocketAddress remoteAddress = InetSocketAddress.createUnresolved(HS_DOMEN, HS_PORT);
if (remoteAddress.isUnresolved())
Log.i("LOG", "address unresolved!!!");
Log.i("LOG", "start connect to inet addr");
clientSocket.connect(remoteAddress, CONNECT_TIMEOUNT);
Log.i("LOG", "after connect ward");
if (clientSocket.isConnected()) {
Log.i("LOG", "socket connected");
}
ソケットはプロキシ設定を正常に理解しましたが、非表示のサービスに接続しようとするとエラーが発生します:
11-06 14:34:57.215: W/System.err(32101): java.net.UnknownHostException: Host is
unresolved: *.onion
11-06 14:34:57.215: W/System.err(32101): at java.net.Socket.connect(Socket.java:825)
11-06 14:34:57.215: W/System.err(32101): at ru.dtlbox.example.clientsample.MainActivity.connectSocket(MainActivity.java:79)
11-06 14:34:57.215: W/System.err(32101): at ru.dtlbox.example.clientsample.MainActivity$2.run(MainActivity.java:128)
11-06 14:34:57.215: W/System.err(32101): at java.lang.Thread.run(Thread.java:856)
Orweb を使用してテストしようとしたため、Onion ホスト名は有効です。すべて正常に動作します。80ポートにnginxサーバーがあります。しかし、私のソケットはこのタマネギのアドレスを解決できません。InetAddress クラスが渡されたホスト名の IP アドレスを解決できないために発生すると思います。しかし、どうすれば正しい設定をセットアップしたり、別の方法で接続したりできますか? アイデアはありますか?どうもありがとうございます!