gpt4 book ai didi

java - Ping 整个网络以查找设备

转载 作者:行者123 更新时间:2023-11-30 00:42:21 24 4
gpt4 key购买 nike

我正在尝试在 5000 端口上将本地网络从 192.168.1.0 ping 到 192.168.1.255,Arduino 板也通过 5000 端口连接到网络。我有开发板的 Mac 地址并试图查找 IP 地址。这是我的代码

static void pingLocal() {
for (int i = 0; i <= 255; i++) {
ping("192.168.1." + i + ":5000");
}
}

private static void ping(String url) {
try {
Process mIpAddrProcess = Runtime.getRuntime().exec("/system/bin/ping -c 1 " + url);
int mExitValue = mIpAddrProcess.waitFor();
System.out.println(" mExitValue " + mExitValue);
if (mExitValue == 0) {
Log.d("log", "true");
} else {
Log.d("log", "false");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}

static String getIPFromArpCache(String mac) {
if (mac == null)
return null;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
Log.d("line", line);
String[] splitted = line.split(" +");
if (splitted.length >= 4 && mac.equals(splitted[3])) {
String ip = splitted[0];
if (ip.split(".").length == 4) {
return ip;
} else {
return null;
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
assert br != null;
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

这是结果

02-20 19:57:07.465 12103-12103/ir.shafadoc.handset D/line: IP address       HW type     Flags       HW address            Mask     Device
02-20 19:57:07.466 12103-12103/ir.shafadoc.handset D/line: 192.168.1.33 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.466 12103-12103/ir.shafadoc.handset D/line: 192.168.1.26 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.19 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.12 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.31 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.468 12103-12103/ir.shafadoc.handset D/line: 192.168.1.24 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.468 12103-12103/ir.shafadoc.handset D/line: 192.168.1.17 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.469 12103-12103/ir.shafadoc.handset D/line: 192.168.1.10 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.29 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.22 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.15 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.471 12103-12103/ir.shafadoc.handset D/line: 192.168.1.8 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.471 12103-12103/ir.shafadoc.handset D/line: 192.168.1.1 0x1 0x2 c0:a0:bb:9a:e4:ad * wlan0
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.27 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.20 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.13 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.32 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.25 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.18 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.474 12103-12103/ir.shafadoc.handset D/line: 192.168.1.11 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.474 12103-12103/ir.shafadoc.handset D/line: 192.168.1.30 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.23 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.16 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.9 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.476 12103-12103/ir.shafadoc.handset D/line: 192.168.1.28 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.476 12103-12103/ir.shafadoc.handset D/line: 192.168.1.21 0x1 0x0 00:00:00:00:00:00 * wlan0
02-20 19:57:07.477 12103-12103/ir.shafadoc.handset D/line: 192.168.1.14 0x1 0x0 00:00:00:00:00:00 * wlan0

如您所见,只有调制解调器在 arp 缓存中有 Mac 地址。怎么了?如何从 Mac 发现网络和查找 IP 地址?

最佳答案

我发现了这种 ping 网络的方法,而且效果很好

if (InetAddress.getByName(host).isReachable(timeout)) {
System.out.println(host + " is reachable");
}

关于java - Ping 整个网络以查找设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42352482/

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