【发布时间】:2018-08-04 12:46:51
【问题描述】:
您好,我正在尝试从 android 查找连接到我的 WIFI 路由器的所有设备,我需要每个设备的设备 Mac 地址和本地 IP 地址(包括 iOT 设备), 现在,我正在尝试从 ARP 缓存表中查找。但有时在扫描中缺少一些设备,它不是那么准确。
我的代码:
List<LocalDeviceInfo> devicesInfos = new ArrayList<>();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] splitted = line.split(" +");
if (splitted != null && splitted.length >= 4) {
String ip = splitted[0];
String mac = splitted[3];
if (mac.matches("..:..:..:..:..:..")) {
LocalDeviceInfo thisNode = new LocalDeviceInfo(ip, mac);
devicesInfos.add(thisNode);
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// Print Description
for (LocalDeviceInfo devicesInfo :devicesInfos)
{
System.out.print("✅");
System.out.println("IP : "+devicesInfo.getIp());
System.out.println("Mac : "+devicesInfo.getMacAddress());
}
如何扫描所有设备(IP 地址和 Mac 地址) 安卓准确。
【问题讨论】: