java - 列出应用程序与之通信的 IP

标签 java android network-programming

我希望列出任何给定的 Android 应用程序以编程方式进行通信的 IP。我真的找不到任何有关如何执行此操作的信息。我浏览了以下库:

  • android.net
  • java.net
  • 大部分 java.security/android.security
他们似乎都没有持有我想要做的事情。如果有人有任何意见,那就太棒了。

此外,为了扩展这一点,了解应用程序和服务器通过哪个端口进行通信会很有趣。

感谢您的帮助。

最佳答案

在您接受 connection 后,每个连接到服务器(通过 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/

相关文章:

java - HTTP:要添加什么 header 才能设置字符集?

java - Android:以编程方式更改 TextView 位置(左或右)?

android - 带有拆分 ActionBar 的 ShareActionProvider

iphone - iOS 应用程序的服务器/网络入门

java - BufferedImage.getRGB 方法不一致 - Java AWT

java - : "margin : auto and display block" and parsing from XHTML to PDF using FlyingSaucer (Itext5) 图像居中时出现问题

python - 根据具有子字符串的特定值删除字典项

java - 读取所有输入流后,SkImageDecoder::Factory 仍然返回 null

java - 为什么 getElementById 对我不起作用? java 语

java - 在android中使图像循环