列出正在与之通信的IP的应用程序

时间:2013-12-02 19:59:53

标签: java android network-programming

我希望列出任何给定的Android应用程序以编程方式进行通信的IP。我真的找不到任何关于如何做到这一点。我查看了以下库:     

  • android.net
  • java.net
  • 大多数java.security/android.security
他们似乎都没有抓住我想做的事情。如果有人有任何意见,那真的很棒。

此外,为了扩展这一点,知道应用和服务器正在通信的端口会很有趣。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

accept connect离子后,连接到服务器(通过TCP)的每个应用程序都会在响应中将其IP地址存储在服务器中。在那里寻找远程地址和端口。

例如:

    ServerSocket serverSocket = new ServerSocket(portNumber);
    Socket fromClientSocket = serverSocket.accept();

请查看fromClientSocket以获取您的信息。

请注意,客户将信息存储在同一个地方,因此getRemoteSocketAddress()也会提供您所寻求的信息。

Socket toServerSocket = new Socket(hostName, portNumber)

[澄清后编辑]

这是一个与我回答的请求不同的请求:)您应该能够查看netstat的来源,看看当您要求每个套接字的PID时会发生什么 - netstat -nap IIRC

<强> [/编辑]