Java 查找远程计算机上使用端口的程序

Java 查找远程计算机上使用端口的程序,java,Java,如何使用JAVA实现它?我可以通过迭代找到所有端口使用或不使用的端口 tcp = new Socket(remote_address, i); // i [0 - 65535] tcp.setReuseAddress(true); 但是如何找到使用此端口的应用程序呢?您无法真正确定这一点。任何应用程序都可以通过TCP发送任何数据流,出于安全原因,这些信息不会远程公开。但是,您可以使用不同的消息探测端口并查看发生了什么,从而可以通过实验推断应用程序 此外,一些服务/协议将具有独特的问候语、标题和

如何使用JAVA实现它?我可以通过迭代找到所有端口使用或不使用的端口

tcp = new Socket(remote_address, i); // i [0 - 65535]
tcp.setReuseAddress(true);

但是如何找到使用此端口的应用程序呢?

您无法真正确定这一点。任何应用程序都可以通过TCP发送任何数据流,出于安全原因,这些信息不会远程公开。但是,您可以使用不同的消息探测端口并查看发生了什么,从而可以通过实验推断应用程序


此外,一些服务/协议将具有独特的问候语、标题和消息,甚至可以公开调试信息。

使用java很难找到这一点。为此,您必须编写大量代码来检查端口的各种特性。如果你在谷歌上搜索这个,你可以得到更多的细节。实际上,有些请求必须发送到端口。现在,运行在该端口后面的各种应用程序将使用特定的标题/横幅/格式进行响应,您将使用这些标题/横幅/格式来检查各种预设条件。但这不是一个100%准确的方法

智能网络管理员可以通过在端口后面设置诱饵来伪装你


相反,您可以为此使用Nmap。它是linux/windows/mac中使用的一个命令行工具,可以帮助您找到大量有关端口的信息。

我相信Java有nmap包装器。也许你应该用谷歌搜索一下。我不想用图书馆。任务是自己写。也许我应该用另一种语言?С++&WinAPI?@user1432980不,改变语言不会有帮助。问题的最初前提使它变得困难。实际上,各种工具所做的是,它发送一个特定的rewest并看到它收到的响应。现在,它根据各种预设条件进行检查,并预测在该端口上运行的应用程序的类型。而且,由于网络管理员可能会设置各种诱饵进行伪装,因此其结果并非100%准确scanning@ShuhailKadavath邮件服务器在一个随机端口上,一些BS在25XDOH上!所以我只需要将请求发送到地址和端口,然后解析结果?OP可以通过telnett端口看到这一点,并查看响应是什么样子。