こんにちは、Android から My WIFI ルーターに接続されているすべてのデバイスを検索しようとしています。各デバイス (iOT デバイスを含む) の Mac アドレスとローカル IP アドレスをデバイスする必要があります。現在、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 アドレス) を正確にスキャンするにはどうすればよいですか。