如何使用 JAVA 来做到这一点?我可以通过所有端口的迭代找到使用或未使用的端口
tcp = new Socket(remote_address, i); // i [0 - 65535]
tcp.setReuseAddress(true);
但是如何找到正在使用这个端口的应用程序呢?
如何使用 JAVA 来做到这一点?我可以通过所有端口的迭代找到使用或未使用的端口
tcp = new Socket(remote_address, i); // i [0 - 65535]
tcp.setReuseAddress(true);
但是如何找到正在使用这个端口的应用程序呢?
使用 java 很难找到这个。为此,您必须编写一个相当大的代码来检查端口的各种特性。如果您对此进行谷歌搜索,您可以获得有关此的更多详细信息。实际上必须将一些请求发送到端口。现在,在该端口后面运行的各种应用程序将响应特定的标题/横幅/格式,您将使用这些标题/横幅/格式来检查各种预设条件。但这不是 100% 准确的方法。
智能网络管理员可以通过在端口后面放置诱饵来欺骗您。
相反,您可以为此使用 Nmap。它是 linux/windows/mac 中使用的命令行工具,可以帮助您找到很多关于端口的信息。
你无法真正确定这一点。任何应用程序都可以通过 TCP 发送任何数据流,并且出于安全原因,此信息不会远程公开。但是,您可以使用不同的消息探测端口并查看发生了什么,从而允许您通过实验推断应用程序。
此外,一些服务/协议会有独特的问候语、标头和消息,甚至可以暴露调试信息。