我正在尝试在Windows上用Java执行ICMP请求。最初我打算使用InetAddress.isReachable()
。在文档中说:
如果可以获得权限,典型的实现将使用ICMP ECHO REQUEST,否则它将尝试在目标主机的端口7(Echo)上建立TCP连接。
我知道在Linux中,您必须拥有root权限才能打开原始套接字,因此您需要root权限才能ping。但这是Windows的情况吗?
我做了一些调查并意识到也许我应该使用runtime.exex(ping_command)
,但后来我发现了一些像shortPasta这样的工具
或者Verax应该更好地用Java实现ICMP请求。
我注意到两者都像我想要的那样执行ping二进制文件,但只在Linux中执行;在Windows中他们使用JNI。
我想知道,在Windows中不执行ping二进制文件是否存在一些主要限制?