我有一个无法解决的问题。
我所知道的:
- 关于我正在寻找的过程的一些信息:这是一个java进程,但是如果我可以访问类似于
ps -ef | grep java
中的信息,那么我可以找到它是PID。 - 运行 Linux 版本 3.16.7-35-desktop (SUSE Linux) 的远程计算机的 IP 地址
我想在该机器上找到该进程使用的端口,但有一些限制:
- 必须在 java 中以编程方式完成
- 必须在Windows和Linux上工作(如果需要,java代码可以分别处理这两种情况)
- 不需要安装任何其他应用程序(无论是在调用方计算机上还是在远程计算机上)
我也知道端口应该在 10000 到 20000 之间。我有权访问远程计算机(两台计算机位于同一子网中)。
你会怎么做?
注意:我找到了这个,但它很旧,并不遥远。
这是一个标准的黑客要求。你可以做nmap
做的事情。
依次连接到范围中的每个端口,并尝试根据连接时从服务获取的数据确定侦听或响应该端口的服务。 它非常慢,如果您有任何工具来检测这一点,它看起来像一个黑客,但这是一种已经使用了很长时间的技术,因为它是唯一的方法,没有服务来告诉您该机器上运行了什么。
更好的方法是在某个地方有一个服务发现过程,其中包含您可以联系的所有服务,最好是它们的状态,以便您可以轻松找到可供您的客户使用的服务。