如何准确地扫描所有设备的IP和Mac地址 连接到Android中的wifi?
嗨,我正在尝试从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());
}
如何准确地扫描Android中的所有设备(IP地址和Mac地址)。