我需要计算在android中通过Tor检索网页所需的总带宽。在我的android应用程序中,我使用Tor库创建了一个Tor电路,并检索网页,然后关闭Tor电路。如何获取总带宽(Tor电路创建+发送请求+接收响应)?如果我们知道没有Tor的带宽,理论上是否可以计算总带宽?
int port = onionProxyManager.getIPv4LocalHostSocksPort();
int proxyPort = port;
String proxyHost = "127.0.0.1";
String remoteHost = "google.com";
int remotePort = 80;
Socks5Proxy socks5Proxy = new Socks5Proxy(proxyHost, proxyPort);
socks5Proxy.resolveAddrLocally(false);
Socket socket = new SocksSocket(socks5Proxy, remoteHost, remotePort);
BufferedReader dIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream dOut = new PrintStream(socket.getOutputStream());
String str = null;
do {
str = dIn.readLine();
response = response + str;
} while (str != null);
onionProxyManager.stop();已按照下面JensV的建议尝试使用网络探查器。使用网络探查器找不到总的数据使用情况。我是不是漏掉了什么?我已经添加了下面的截图。

发布于 2020-04-19 01:57:02
我认为这是不可能的。我假设您使用的是this library (从您的代码推断)。我查看了这个库的源代码,为了创建tor代理,它实际上是spawns a separate process,它启动tor二进制文件。
因此,尽管在技术上有可能,但该库没有提供拦截/检查数据包(或数据包大小)本身的方法。
如果你只是想做检查,你可以使用Android Studio中的Network Profiler。在那里,您应该能够看到正在进行的流量。您还可以通过这种方式收集数据,估计您从基本网络请求中获得的开销,并向用户显示估计值。
发布于 2020-04-25 07:19:28
你可以在你的笔记本电脑上创建一个wifi热点,然后通过android手机连接到它。在笔记本电脑上安装wireshark以分析TOR流量。如果你在google中输入"setup wifi hotspot“,你会发现很多设置的例子。Wireshark和tor流量也是如此。
https://stackoverflow.com/questions/61222086
复制相似问题