gpt4 book ai didi

java - Ping 函数返回所有 ping 到的 IP 地址均可访问

转载 作者:行者123 更新时间:2023-12-01 18:47:48 26 4
gpt4 key购买 nike

我正在尝试 ping 从 192.168.1.1 到 192.168.1.254 的 IP 地址。首先,我使用 InetAddress 类,但它被窃听了,有些 IP 即使可以访问也无法访问。之后我尝试了这种方法,它对于单个 ping IP 非常有效,但是当我将其放入 for 循环中时,所有可 ping 的 IP 都可达...你们能告诉我这里出了什么问题吗?

代码:

public class Main {
public static void main(String[] args) {
String ip="192.168.1.";
try
{
for(int i=0;i<=254;i++){
String ip2=ip+i;
boolean reachable = (java.lang.Runtime.getRuntime().exec("ping -n 1 "+ip2).waitFor()==0);
if(reachable){
System.out.println("IP is reachable:: "+ip2);
}
else{
System.out.println("IP is not reachable: "+ip2);
}
}
}catch(Exception e)
{
e.printStackTrace();
}

}

}

编辑1:

我使用内置的 Java 函数来执行 ping,但它(再次)不起作用

这是我使用的代码

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Test {

public static void main(String[] args) throws UnknownHostException, IOException {
String ip = "192.168.1.243";
InetAddress inet = InetAddress.getByName(ip);
System.out.println("Sending Ping Request to " + ip);
if (inet.isReachable(5000)){
System.out.println(ip+" is reachable");
}
else{
System.out.println(ip+" is not reachable");
}

}
}

输出是:

Sending Ping Request to 192.168.1.243
192.168.1.243 is not reachable

这也是我从 Windows 7 内置 Ping 功能 (cmd) 执行 ping 操作时的 ping 结果

enter image description here

最佳答案

使用isReachable()相反。

InetAddress.getByName(address).isReachable(timeout);

关于java - Ping 函数返回所有 ping 到的 IP 地址均可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com