我希望列出任何给定的 Android 应用程序以编程方式进行通信的 IP。我真的找不到任何有关如何执行此操作的信息。我浏览了以下库:
- android.net
- java.net
- 大部分 java.security/android.security
此外,为了扩展这一点,了解应用程序和服务器通过哪个端口进行通信会很有趣。
感谢您的帮助。
最佳答案
在您接受
connect
ion 后,每个连接到服务器(通过 TCP)的应用程序都会将其 IP 地址存储在响应中的服务器中。在那里寻找远程地址和端口。
例如:
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket fromClientSocket = serverSocket.accept();
查看 fromClientSocket
以了解您的信息。
请注意,客户端将信息存储在同一位置,因此 getRemoteSocketAddress()
也会提供您要查找的信息。
Socket toServerSocket = new Socket(hostName, portNumber)
[澄清后编辑]
这与我回答的请求不同 :) 您应该能够查看 netstat
的源代码并查看当您请求每个套接字的 PID 时会发生什么 - netstat -nap
IIRC
[/edit]
关于java - 列出应用程序与之通信的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336747/